Ошибка 3031 при сопоставлении фрагментов, начиная со строки 439: столбец, не обнуляемый - PullRequest
6 голосов
/ 29 декабря 2011
Error 3031: Problem in mapping fragments starting at line 439:Non-nullable column D_LINK.CARTON_QTY in table D_LINK is mapped to a nullable entity property.

У меня есть представление D_LINK с колонкой

CARTON_QTY(int, not null)

Я не понимаю, где моя проблема Должен ли я сделать его нулевым \ как?

Ответы [ 7 ]

9 голосов
/ 28 ноября 2012

обновить таблицу в вашем edmx из базы данных (в браузере модели щелкните правой кнопкой мыши -> Обновить модель из базы данных -> вкладка обновления -> выберите таблицу -> нажмите обновить)

7 голосов
/ 29 декабря 2011

Ошибка говорит о том, что ваш столбец в таблице / представлении не обнуляется, но свойство класса в модели сущностей обнуляется.Они оба должны быть либо обнуляемыми, либо не обнуляемыми.

2 голосов
/ 15 октября 2013

Просто удалите эту конкретную таблицу из модели и добавьте ее снова. Это решит вашу проблему.

1 голос
/ 15 января 2013

У меня возникла эта проблема после замены необнуляемого столбца на обнуляемый. Для меня это решило следующее:

  1. Вручную отредактируйте столбец и ссылку, в которой он находился, на другую таблицу (0 ... 1) в файле .edbx.
  2. После редактирования вручную выполните обновление таблицы, как описано в DRM.

Одно из действий не решило мою проблему (похоже на сбой). Надеюсь, это кому-нибудь поможет.

0 голосов
/ 01 октября 2015

Я получил решение: 1. Удалите определенные таблицы из модели 2. Щелкните правой кнопкой мыши модель, выберите Обновить модель из базы данных, выберите удаленные таблицы и нажмите Готово.

0 голосов
/ 27 декабря 2013

Если вы хотите сохранить запись. Только отменить устраняет ошибку, в противном случае перестроена таблица

0 голосов
/ 28 июня 2013

Это на EF 4.5, что я нахожу это, предыдущие версии могут не иметь этой точной проблемы.

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

Я нашел лучший способ убедиться, что ваши модели сущностей edmx верны, - это удалить edmx и добавить его заново. После первого подхода к базе данных на EF 4.5, я думаю, что Entity, кажется, лучше работает с подходом кода сначала, а не с базой данных вначале.

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