是的,这个主题已经在网上的数百个帖子中有所涉及,但我仍然没有找到一个不涉及加载整个实体(有时是序列化的)只更改单个字段的帖子。有人建议在实体的所有属性上更改“更新检查”可以解决这个问题,但到目前为止,无论我的方法如何,我仍然会收到ChangeConflictExceptions。有没有办法告诉L2S不再是我的保姆并让我更新?
var context = new MyDataContext();
var person = new Person() {Id = 5};
person.LastName = "Johanssen";
context.People.Attach(person);
context.SubmitChanges();
非常感谢您的见解!
詹姆斯
答案 0 :(得分:2)
好的,我没有仔细观察Visual Studio。尽管在设计器中我将所有字段都更改为UpdateCheck.Never当我查看MyModel.desinger.cs文件以查看生成的实体时,该属性未被添加到大多数字段中。当我添加属性时,更新已经完成,一切都很顺利。
如果您需要一次将此属性添加到多个字段,则此处是VS正则表达式替换,它会将其附加到文件中的所有列。我强烈建议先检查文件(或备份),以确保不会丢失所有的辛勤工作。如果你已经在某些设置上设置了属性,它会将它们加倍(因此下面的第二个替换)。
Find and Replace (Regular Expressions on)
\[Column{.*}\)\]
[Column\1, UpdateCheck=UpdateCheck.Never )]
Find and Replace (Regular Expressions off)
UpdateCheck=UpdateCheck.Never, UpdateCheck=UpdateCheck.Never
UpdateCheck=UpdateCheck.Never