【发布时间】:2011-08-24 04:07:48
【问题描述】:
我在一个简单的费用记录应用程序中使用 C#4.0。我正在尝试使用自动递增的 id 字段保存到表中,设置为主键。我第一次使用它时效果很好,但第二次和以后的时候,我得到“无法添加已经存在的身份”错误。
这是我遇到问题的代码
public bool SaveClaim(Claim newClaim, bool blNew)
{
bool blSuccess = true;
try
{
expContext.Claims.InsertOnSubmit(newClaim);
expContext.SubmitChanges();
claim = null;
}
catch (Exception e)
{
blSuccess = false;
MessageBox.Show(e.ToString());
}
return blSuccess;
}
我整个上午都在处理这个问题,这让我发疯了。我很乐意为您提供任何帮助。
【问题讨论】:
-
我已尝试修复您损坏的代码,但仍不完整。
blNew在哪里使用?claim = null是干什么用的? -
尝试运行 SQL Query Profiler 以找出正在执行的内容,并验证 id 实际上是在递增而不是传入。
-
您第二次调用它,这真的是一个新的声明还是您更改了现有的声明实体?后者是行不通的。
标签: linq-to-sql