Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql Linq到sql部分更新?_Linq To Sql - Fatal编程技术网

Linq to sql Linq到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的表中的项

是否可以通过linq2sql进行部分更新

如果我只想更新2个字段,我会使用类似sql的

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();