当我知道实体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();
Run Code Online (Sandbox Code Playgroud)
在您的Dbml中,为所有属性设置UpdateCheck ="Never".
这将生成一个没有select的单个更新语句.
需要注意的是:如果您希望能够将Name设置为null,则必须将foo对象初始化为不同的值,以便Linq可以检测到更改:
Foo foo=new Foo { FooId=fooId, Name="###" };
...
foo.Name=null;
Run Code Online (Sandbox Code Playgroud)
如果您想在更新时检查时间戳,也可以这样做:
Foo foo=new Foo { FooId=fooId, Modified=... };
// Modified needs to be set to UpdateCheck="Always" in the dbml
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3547 次 |
| 最近记录: |