Linq to sql Linq到sql部分更新?
是否可以通过linq2sql进行部分更新 如果我只想更新2个字段,我会使用类似sql的Linq to sql Linq到sql部分更新?,linq-to-sql,Linq To Sql,是否可以通过linq2sql进行部分更新 如果我只想更新2个字段,我会使用类似sql的 update table set col1 = val1, col2 = val2 where id = @id 我发现“从数据库中获取它,更改它,然后更新”的过程有点低效,甚至有些怪异。LINQ(语言集成查询)是用于查询的,而不是完整的CRUD。LINQtoSQL通过典型的对象模型处理更新、删除和创建操作 由于您已经拥有要更新的对象的ID,我们将假设您在LINQ中拥有该实体对象(例如,ID=1的表中的项
update table set col1 = val1, col2 = val2 where id = @id
我发现“从数据库中获取它,更改它,然后更新”的过程有点低效,甚至有些怪异。LINQ(语言集成查询)是用于查询的,而不是完整的CRUD。LINQtoSQL通过典型的对象模型处理更新、删除和创建操作
由于您已经拥有要更新的对象的ID,我们将假设您在LINQ中拥有该实体对象(例如,ID=1的表中的项选择项中的项选择项):
这适用于需要更改特定记录的一次性更新
如果由于某种原因,您没有原始实体对象,但有ID,则可以通过DataContext执行任意SQL:
dataContext.ExecuteQuery(
"UPDATE table SET col1={0}, col2={1} WHERE ID={3}",
value1,
value2,
id);
是的,您可以生成update语句,而无需执行fetch:
Foo foo=new Foo { FooId=fooId }; // create obj and set keys
context.Foos.Attach(foo);
foo.Name="test";
context.SubmitChanges();
看
Foo foo=new Foo { FooId=fooId }; // create obj and set keys
context.Foos.Attach(foo);
foo.Name="test";
context.SubmitChanges();