读书人

Linq Attach不能更新.该怎么处理

发布时间: 2012-03-23 12:06:21 作者: rapoo

Linq Attach不能更新.
LINQContext _db = new LINQContext();
public void SaveUser(LinqToSql.td_Users user)
{
try
{

user.user_Time = DateTime.Now;
_db.td_Users.Attach(user,true);
_db.SubmitChanges();
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}

第一次更新没有问题,第二次报异常:无法附加已经存在的实体。
怎么回事啊?难道必须得重新生成上下文???

[解决办法]
先查询,再更新.目前我也没有找出好办法.
[解决办法]
单步调试一下,找到错误的代码行分析
[解决办法]
第二次user要重新new,不然还是第一个user,当然就重复了
[解决办法]
如果是更新值,不用_db.td_Users.Attach(user,true);
[解决办法]
Attach 主要在 多个 context 创建的实体时,利用一个实体来保存数据的时候,你这个问题需要检查一下数据库主键设置了没有,能不能标识出这行的唯一性,这样才能顺利保存。

读书人网 >.NET

热点推荐