Linq to sql 使用Linq将单个字段更新为SQL—我可以禁用所有并发逻辑吗?

Linq to sql 使用Linq将单个字段更新为SQL—我可以禁用所有并发逻辑吗?,linq-to-sql,concurrency,Linq To Sql,Concurrency,是的,网络上数百篇文章都涉及到了这个主题,但我还没有找到一篇不涉及加载整个实体(有时是序列化的)而只是更改单个字段的文章。有人建议对实体的所有属性更改“更新检查”可以解决这个问题,但到目前为止,无论我的方法如何,我仍然得到ChangeConflictException。有没有办法告诉L2别再做我的保姆了,让我更新一下 var context = new MyDataContext(); var person = new Person() {Id = 5}; person.LastName = "

是的,网络上数百篇文章都涉及到了这个主题,但我还没有找到一篇不涉及加载整个实体(有时是序列化的)而只是更改单个字段的文章。有人建议对实体的所有属性更改“更新检查”可以解决这个问题,但到目前为止,无论我的方法如何,我仍然得到ChangeConflictException。有没有办法告诉L2别再做我的保姆了,让我更新一下

var context = new MyDataContext();
var person = new Person() {Id = 5};
person.LastName = "Johanssen";
context.People.Attach(person);
context.SubmitChanges();
非常感谢您的洞察力


詹姆斯

好的,我没有足够仔细地观看Visual Studio。即使在designer中,我已将所有字段更改为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