RuiBarreiros Ответов: 1

Каков наилучший способ обновления столбцов, зависящих от других столбцов (entity framework)?


Привет,
Я использую WPF с шаблоном MVVM и Entity Framework для доступа к данным из базы данных SQL.
Я использую Entity Framework для реинжиниринга базы данных и получения из нее сущностей.
Теперь мне нужно обновить некоторые данные в таблице Table_A, которая имеет 30 столбцов, но мне нужно только, чтобы пользователь мог обновить Column10. Проблема в том, что Column12 зависит от Column10 (Column12 = Column10 + Column11).

1. каков наиболее эффективный путь? Нужно ли мне извлекать все столбцы из таблицы а с помощью запроса LINQ? Должен ли я создать себе новую сущность в конструкторе. edmx? Мне действительно нужно, чтобы результат был ObservableColletion, поэтому создание анонимных запросов несколько выходит за рамки картины..
2-Как и где я буду кодировать часть логики для обновления Column12?

Что я уже пробовал:

Получение всех столбцов из базы данных, но это не эффективно..

1 Ответов

Рейтинг:
2

Ruard

Обновление выбранных полей:

Вы можете добавить новую сущность только с необходимыми столбцами. Убедитесь, что эта частичная сущность не используется для добавления новых записей, если только все остальные столбцы не являются необязательными. Я могу себе представить, что у этой сущности есть ключ и три столбца (10, 11 и 12), где вы изменяете столбец 10 и вычисляете столбец 12.

Альтернатива такова, как описано здесь: sql-как обновить только одно поле с помощью Entity Framework? - переполнение стека[^]

Column12:

Поскольку поля в сущности являются свойствами, вы можете вернуть вычисленное значение вместо текущего. Не снимайте комплект. Должен признаться, что я этого не проверял, но это должно сработать.

public string colum12 { get { return column10 + column11;} set {} }

Но зачем вообще обновлять его в коде? То же самое можно сделать и в базе данных. Я предлагаю вам изменить column12 на вычисляемый столбец: Укажите вычисляемые столбцы в таблице[^]