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

linq 实体更新问题,在线请教高手,急!!!
ZhhDataContext db = ZhhDataContext.Create();

Zhh.Models.User user = new Zhh.Models.User();
user.LoginID = LoginID;
user.Password = Password;
user.LoginCount += 1;
user.LastTime = DateTime.Now;
Modify(user);

public bool Modify(User t)
{
   Zhh.Models.User user = db.User.FirstOrDefault(u => u.PKID == t.PKID);

   user = t;

   db.SubmitChanges();

   return true;
}


请问这样些为什么更新不了数据啊。请教高手!!!

------解决方案--------------------
告诉你了user = t;这样写不行,new 了user,就要对其属性赋值,才能更新
user = t;这样是将new的user指向了t,并没有改变new出来的user的内部属性的值
改为
user.xxx = t.xxx;
user.yyy = t.yyy
------解决方案--------------------
  user = t;

 这肯定是不和的,不能对实体直接付值,要对其内的属性字段一个个的来:

user.LoginID =  t.LoginID;
user.Password = t.Password;
 ....
------解决方案--------------------
引用:
告诉你了user = t;这样写不行,new 了user,就要对其属性赋值,才能更新
user = t;这样是将new的user指向了t,并没有改变new出来的user的内部属性的值
改为
user.xxx = t.xxx;
user.yyy = t.yyy
++1