首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-03-23 
Linq Attach不能更新.LINQContext _db new LINQContext()public void SaveUser(LinqToSql.td_Users use

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 创建的实体时,利用一个实体来保存数据的时候,你这个问题需要检查一下数据库主键设置了没有,能不能标识出这行的唯一性,这样才能顺利保存。

热点排行