Как переопределить вычисленное значение с помощью EntityFramework 4.1 DbContext API - PullRequest
0 голосов
/ 06 июля 2011

У меня есть столбец версии строки (timestamp), для которого в моем конструкторе EF установлено значение.

Установка значения в коде через прямое свойство, например

     myEnt.rowversion = screenRowVersion;

, имееттеперь действует при вызове SaveChanges(), трассировка до SQLServer показывает, что используется исходное значение rowversion.

Возможно ли, чтобы API-интерфейс DbContext принимал external вычисленное значение?

1 Ответ

1 голос
/ 06 июля 2011

EF не позволяет переопределять вычисленные значения - он всегда использует исходные значения, загруженные из базы данных. Для этого есть обходной путь, при котором вы обманываете EF и изменяете исходное значение, отслеживаемое контекстом:

context.Entry(myEnt).OriginalValues["rowversion"] = screenRowVersion;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...