Linq Attach不能更新

guansong8079776 2009-09-24 05:56:04
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);
}
}

第一次更新没有问题,第二次报异常:无法附加已经存在的实体。
怎么回事啊?难道必须得重新生成上下文???
...全文
711 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gsly 2009-09-27
  • 打赏
  • 举报
回复
Attach 主要在 多个 context 创建的实体时,利用一个实体来保存数据的时候,你这个问题需要检查一下数据库主键设置了没有,能不能标识出这行的唯一性,这样才能顺利保存。
guansong8079776 2009-09-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yezie 的回复:]
如果是更新值,不用_db.td_Users.Attach(user,true);
[/Quote]
那用什么?到底更新该怎么做?望赐教
yezie 2009-09-26
  • 打赏
  • 举报
回复
如果是更新值,不用_db.td_Users.Attach(user,true);
yezie 2009-09-26
  • 打赏
  • 举报
回复
第二次user要重新new,不然还是第一个user,当然就重复了
chen_ya_ping 2009-09-25
  • 打赏
  • 举报
回复
单步调试一下,找到错误的代码行分析
guansong8079776 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lnwuyaowei 的回复:]
先查询,再更新.目前我也没有找出好办法.
[/Quote]
郁闷啊,ms的东西不应该是这样啊?
lnwuyaowei 2009-09-25
  • 打赏
  • 举报
回复
先查询,再更新.目前我也没有找出好办法.

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧