2015-06-09 4 views
0

Я использую Entity Framework с кодом First in C#.Содержимое DbSet отличается от содержимого базы данных

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

Это то, что я вижу: The table in the database

The DbSet while debugging

Я хотел бы понять, почему номер элемента 4 набора имеет другой тип, чем другие.

Если я закрою программу и откройте ее, тогда DbSet будет обновлен.

Благодаря

+0

0-3 - это классы прокси, используемые для ленивой загрузки. Номер 4 - это пример, который вы прикрепляете() ed, вероятно, отправлены через MVC. Но это не ваш вопрос, не так ли? В вашем представлении отсутствует элемент ввода для столбца «EstaFinalizado», поэтому сущность, которую вы пытаетесь сохранить, имеет значение по умолчанию bool, являющееся ложным. Это неверно обновляет вашу базу данных. В случае обновления вам необходимо сначала загрузить существующий объект из базы данных, а затем назначить соответствующие свойства из опубликованной модели и сохранить изменения. – CodeCaster

+0

Я не знаю, если это так, но имейте в виду, что любые изменения в базе данных, которые происходят после того, как объект был увлажнен, не отразятся на вашем объекте, так как запрос будет выполнен только один раз. – bateloche

+0

Тип номера 4 отличается тем, что вы расширили три – bateloche

ответ

0

Элемент номер 4 является элемент, который вы только что создали так EF не создали прокси для него. Проблема в том, что элемент не отражает изменения базы данных, может быть несколько. Например,
- элемент 4 создается только в памяти, чем кто-то другой (другой контекст), обновляющий элемент. - элемент 4 создается только в памяти с некоторыми нулевыми полями, а SQL добавил некоторые значения по умолчанию.
- ...

Смежные вопросы