我正在尝试使用linq使用explict强制进行更新,并且更改不提交。
这是代码
Image update = db.Images.Where(i => i.ImageId == imageWithChanges.ImageId).SingleOrDefault();
update = (Image)imageWithChanges;
db.SubmitChanges();
我的图像类中有一个显式运算符。有人可以帮忙吗?
由于
答案 0 :(得分:1)
该行
update = (Image)imageWithChanges;
没有改变任何事情。它只是交换变量 update 指向的东西。如果您想要实际更改图像,则可能必须将每个属性从 imageWithChanges 复制到更新。
另一种方法是将 imageWithChanges 附加到db.Images并说它是一个修改过的实例:
db.Images.Attach((Image)imageWithChanges, true); // true means "it's modified"
db.SaveChanges();
答案 1 :(得分:0)
你说你修好了,但不要说怎么做。
对于所有读过这篇文章的人,我同意鲁本的意见,你必须附上它。它给你的错误是有效的,你必须处理并发检查(带有时间戳或版本号)或者让最后一个获胜(通过将UpdateCheck设置为所有实体的属性为false)。