仅将更改应用于特定表

时间:2019-01-16 08:55:06

标签: c# linq linq-to-sql

有一个代码使用单个linq上下文对象来处理多个表。更改某些值后,我需要在数据库中更新它们。它是通过SubmitChanges函数实现的,该函数应用所做的所有更改。代码看起来像这样:

MyDBDataContext ctx = new MyDBDataContext(connectionString);

first_table_object first = (from f in ctx.first_table_objects select f).FirstOrDefault();
first.property = 1;

second_table_object second = (from s in ctx.second_table_objects select s).FirstOrDefault();
second.property = 2;

//ctx.SubmitChanges();
ctx.SubmitChangesOnlyToTheSecondTable();

是否可以只更新一个表而不是提交所有更改?

1 个答案:

答案 0 :(得分:1)

为此,您可以分离从第一个表中检索到的对象。您可以使用AsNoTracking()来实现。这将指示EF不要照顾从first_table_objects

获取的实体所做的更改
 first_table_object first = (ctx.first_table_objects.AsNoTracking().Select(s => s)).FirstOrDefault()