【问题标题】:Apply changes to a specific table only仅将更改应用于特定表
【发布时间】:2019-01-16 08:55:06
【问题描述】:

有一个代码使用单个 linq 上下文对象来处理多个表。更改一些值后,我需要在 DB 中更新它们。它是通过 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();

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

【问题讨论】:

    标签: c# linq linq-to-sql


    【解决方案1】:

    为此,您可以分离从第一个表中检索到的对象。您可以使用AsNoTracking() 来实现它。这将指示 EF 不处理对取自 first_table_objects 的实体所做的更改

     first_table_object first = (ctx.first_table_objects.AsNoTracking().Select(s => s)).FirstOrDefault()
    

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 2015-08-01
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      • 2023-02-11
      • 1970-01-01
      • 2019-02-28
      相关资源
      最近更新 更多