2016-12-14 3 views
0

Ich habe ein Problem bekommen eine "CodeFluent.Runtime.CodeFluentDuplicateException" und ich vermisse wahrscheinlich etwas Grundlegendes.CodeFluentDuplicateException was mir fehlt Ich habe

Allerdings habe ich zuerst diesen Blog über die Verwendung von Servicestack und codefluents gemacht und meine eigene template gemacht. Ich habe keine Probleme Entitäten zu bekommen, aber einen Put zu machen gebe mir eine Ausnahme erwähnt.
Ok vielleicht habe ich etwas falsch in meiner Vorlage gemacht, so dass ich einen anderen Ansatz suchte nach Antworten Ich fand ein "komplettes" Projekt mit Webapi und eine Vorlage, bereit zu verwenden. Generate ASP .NET Web API Controllers using Templates.
Dies erzeugt alle Controller und scheint zu arbeiten. Allerdings habe ich die gleiche Ausnahme bei der Verwendung des "Put".

Dies ist ein Beispiel der Steuerung erzeugte Code für

public HttpResponseMessage Put([FromBody]Country value) 
    { 
     if (value == null || !value.Save()) 
     { 
      return Request.CreateResponse(HttpStatusCode.BadRequest); 
     } 
     return Request.CreateResponse(HttpStatusCode.OK, value); 
    } 

Setzen Dies ist, wie ich die Steuerung über in einer Xamarin.Forms Lösung verwenden.

public async Task UpdateAsync(Country update, bool isNewItem=false) 
    { 
     HttpClient client = new HttpClient(); 

     // RestUrl = http://developer.xamarin.com:8081/api/todoitems{0} 
     var uri = new Uri(string.Format(Constants.RestUrl2, update.Id)); 

     try 
     { 
      var json = JsonConvert.SerializeObject(update); 
      var content = new StringContent(json, Encoding.UTF8, "application/json"); 

      HttpResponseMessage response = null; 
      if (isNewItem) 
      { 
       response = await client.PostAsync(uri, content); 
      } 
      else 
      { 
       response = await client.PutAsync(uri, content); 
      } 

      if (response.IsSuccessStatusCode) 
      { 
       Debug.WriteLine(@"    TodoItem successfully saved."); 
      } 
     } 
     catch (Exception ex) 
     { 
      Debug.WriteLine(@"    ERROR {0}", ex.Message); 
     } 
    } 

Irgendwelche Vorschläge, was ich vermisse?

Danke für jede Hilfe // Greg

Antwort

0

bekam ich die Antwort von der softfluent Unterstützung

“.. Ein weiterer Fall von doppelten Ausnahme ist, wenn Sie Parallelität und die RowVersion der Instanz ermöglicht es Ihnen, update ist null. In diesem Fall wird die gespeicherte Prozedur die Zeile einfügen, anstatt sie zu aktualisieren. .. "
Das Ändern des concurrencyMode = None hat den Trick

Verwandte Themen