2016-12-14 95 views
0

我有问题得到一个“CodeFluent.Runtime.CodeFluentDuplicateException”,我可能缺少一些基本的东西。CodeFluentDuplicateException我失去了什么

但是,我首先关注了使用ServiceStack和codefluents的博客,并制作了我自己的template。 我没有问题得到实体,但做了一个让我提到一个例外。
好吧,也许我在我的模板中做了一些错误,所以我采取另一种方法寻找答案,我找到了一个使用Webapi和模板的“完整”项目,随时可以使用。 Generate ASP .NET Web API Controllers using Templates
这生成所有的控制器,似乎工作。但是,当使用“put”时,我有相同的豁免。

这是生成控制器代码的一个例子为将

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

这是我如何使用控制器上方的Xamarin.Forms溶液内。

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); 
     } 
    } 

有什么建议我缺少什么?

感谢所有帮助 //格雷格

回答

0

我从softfluent支持

” .. 答案重复异常的另一种情况是,当您启用乐观并发和实例的RowVersion你在这种情况下,存储过程将插入行而不是更新它 ..“
更改并发性模式=没有窍门

相关问题