Невозможно вставить NULL в столбец без идентификатора в Entity Framework.Забавно ... это не ноль? - PullRequest
2 голосов
/ 12 октября 2011

У меня есть таблица SalesOrder со столбцами для ID и OrderID. ID - это автоматически сгенерированный int. OrderID является ненулевой строкой с максимальной длиной 20, и мы используем ее для хранения номера заказа клиента для справки.

После добавления моего нового SalesOrder и вызова SaveChanges я получаю следующую ошибку:

Невозможно вставить значение NULL в столбец 'OrderID', таблица 'SalesOrder'; столбец не допускает пустых значений. Вставить не удается. Заявление было прекращено.

Проблема в том, что объект, который я сохраняю на самом деле , имеет OrderID! Это почти как попытка сохранить сущность, прежде чем она сохранит все значения. Это то, как EF обрабатывает вещи?

Моя установка - EF4.1, с использованием подхода модели EDMX. Для StoreGeneratedPattern задано значение Нет. Значение по умолчанию в настоящее время установлено (Нет), но я пробовал различные значения. Ключ сущности имеет значение False, поскольку он не является частью ключа. Я также попытался удалить сущность SalesOrder и восстановить ее из базы данных.

1 Ответ

0 голосов
/ 11 мая 2012

Я также хотел бы увидеть ваш код ... У меня были похожие проблемы при заполнении объектов в цикле и сохранении их с сохранением. Я думал, что все поля были заполнены, но они не были.

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

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

...