日期:2014-05-20  浏览次数:20765 次

Linq to sql从客户端传回的实体对象attach后更新没效果.
客户端将实体对象传回到服务端,服务端的方法如下:
C# code

        public void SaveUser(LinqToSql.td_Users user)
        {
            try
            {
                LINQContext _db = new LINQContext();  
                user.user_Time = DateTime.Now;
                _db.td_Users.Attach(user);
                _db.SubmitChanges();
            }
            catch(Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }



查看上下文里的对象已经有了,而且数据也是新的,但是SubmitChanges后,没有更新到数据库。真是有点郁闷,不知道是不是实体类没有设置正确导致?我是直接按照设计器里从数据表拖放过来的,并未做修改。

------解决方案--------------------
attach好像有两个参数的吧。你把后面的那个参数设置true试试
------解决方案--------------------
attach上去的实体是未修改状态(即使在程序的其它地方已经被修改)
------解决方案--------------------
在主键列上加上: IsVersion=true
参考