Применять изменения только к определенной таблице - PullRequest
0 голосов
/ 16 января 2019

Существует код, который использует один контекстный объект 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 голосов
/ 16 января 2019

Для этого вы можете отсоединить объект, извлеченный из первой таблицы. Вы можете достичь этого с помощью AsNoTracking () . Это заставит EF не заботиться об изменениях, внесенных в сущности, взятые из first_table_objects

 first_table_object first = (ctx.first_table_objects.AsNoTracking().Select(s => s)).FirstOrDefault()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...