Вставить / обновить в столбце SqlServer.Date из EntityFramework v6 - PullRequest
0 голосов
/ 24 апреля 2019

Примечание: это тип данных Дата на Sql-сервере (не DateTime и не DateTime2, на которых, по-видимому, сосредоточено большинство ответов).

Как вставить из EF?

Я попытался, как показано ниже, но я застрял на стороне .NET.

 TB_MyTable newEntity = new TB_MyTable()
{
    col1 = "abc",
    col2  = 123

    dtCol       = DateTime.MinValue,
    dateOnlyCol = ??? What goes here, range is '0001-01-01' to '9999-12-31'
};

TB_MyTable inserted = dbCtx.TB_MyTable.Add(newEntity);
int rowsAffected = dbCtx.SaveChanges();

Ошибка .SaveChanges ():

{"Преобразование типа данных datetime2 в тип данных datetime привело к значению, выходящему за пределы допустимого диапазона. \ r \ nОперация была прекращается. "}

Пожалуйста, не предлагайте мне использовать строку справа, она не работает: P

1 Ответ

0 голосов
/ 24 апреля 2019

Какой тип данных у столбца dtCol?

Ошибка, по-видимому, говорит о том, что это datetime (минимальное значение 1/1/1753), и вы пытаетесь вставить в него год 0001 (DateTime.MinValue).

Дополнительно

Microsoft рекомендует DATETIME2 более DATETIME. Для новых проектов я бы предложил вам использовать DATETIME2, не в последнюю очередь для более плавной интеграции .NET.

Подробнее: DateTime2 против DateTime в SQL Server

...