当我知道实体 ID 时,我想更新实体的唯一字段。
在 LINQ to SQL 中是否可以不检索完整实体(使用 DataContext 中的所有字段,这是开销)?是否可以创建实体并将其附加到 DataContext 并标记要在 DataContext.SubmitChanges (或类似的东西)上同步的确切字段?
先感谢您!
是的你可以:
Foo foo=new Foo { FooId=fooId }; // create obj and set keys
context.Foos.Attach(foo);
foo.Name="test";
context.SubmitChanges();
在 Dbml 中为所有属性设置 UpdateCheck="Never"。
这将生成一个没有选择的更新语句。
需要注意的是:如果您希望能够将 Name 设置为 null,则必须将 foo 对象初始化为不同的值,以便 Linq 可以检测到更改:
Foo foo=new Foo { FooId=fooId, Name="###" };
...
foo.Name=null;
如果您想在更新时检查时间戳,也可以这样做:
Foo foo=new Foo { FooId=fooId, Modified=... };
// Modified needs to be set to UpdateCheck="Always" in the dbml
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)