Linq для ошибки вставки сущностей - PullRequest
0 голосов
/ 28 мая 2011

У меня есть имя поля LastUpdated типа DateTime в моей таблице и одно поле типа text.Я использую следующий код:

TransactionLog lg = new TransactionLog();
lg.TransactionTypeId = 2;
**lg.Message** = "Beginning report run for: Obligor Registry ID733058723315465243 Requesting Organization Registry ID 731099717606760920 ";// msg;
// lg.LastUpdated = DateTime.Now;

context.TransactionLogs.Add(lg);
context.SaveChanges();
long referenceNumber = lg.ID;

            return referenceNumber;

Я предполагаю, что столбец типа текста может иметь бесконечно длинное текстовое значение.но когда я пытаюсь добавить еще текст в сообщение, я получаю сообщение об ошибке.Кроме того, DateTime в базе данных определяется не null, а задано значение по умолчанию GetDate ().Если я не назначаю дату столбцу LastUpdated, я получаю сообщение об ошибке:

The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.
The statement has been terminated.

Пожалуйста, предложите мне решение этой проблемы.

1 Ответ

1 голос
/ 28 мая 2011

Размер столбца типа текста зависит от определения столбца в базе данных. Таким образом, он не должен принимать текст любой длины. Различные инструменты для создания базы данных используют разные значения по умолчанию.

Значение по умолчанию для вашего столбца даты и времени игнорируется. После того, как вы укажете свойство, которое не обнуляется в модели EF, оно всегда будет отправлять значение .NET по умолчанию, равное 1.1.0001. Это значение не может быть сохранено в столбце DATETIME SQL. Вы должны заполнить это свойство в своем заявлении, чтобы избежать этой ошибки.

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