Столбец DateTime со значением по умолчанию, сопоставление с EF4 - PullRequest
2 голосов
/ 15 декабря 2009

В моей базе данных есть столбец даты и времени "Создан" со значением по умолчанию getutcdate(). Я хотел бы, чтобы мой текст данных EF генерировал запрос вставки, который не устанавливает этот столбец, и извлекал полученное значение. Есть ли способ сделать это?

Я попытался установить для StoreGeneratedPattern значение Нет, Идентичность или Вычислено, я получаю исключение, что DateTime не может быть преобразован в datetime2 (то есть он пытается вставить 0:00 при 0-0-0)

Как мне настроить мой edmx для разрешения создания объектов без указания начального значения Created?

1 Ответ

0 голосов
/ 16 декабря 2009

работал на моей машине. Только что попробовал, добавил в мою модель свойство под названием «Свойство» (имя по умолчанию), установил для столбца значение Nullable: false, StoreGeneratedPattern: computed:

Вот сгенерированный sql для примера, который я только что попробовал:

insert [dbo].[Foods]
      ([CommonName],
       [ScientificName],
       [ShortDescription],
       [CategoryId],
       [LongDescription])
values('sdfg' /* @0 */,
       'sdfg' /* @1 */,
       'sdfg' /* @2 */,
       1 /* @3 */,
       'sdfg' /* @4 */)
select [Id],
       [Property]
from   [dbo].[Foods]
where  @@ROWCOUNT > 0
       and [Id] = scope_identity()

EF4 даже знал, как прочитать свойство Property после вставки.

Редактировать: У вас есть эта проблема: Преобразование типа данных datetime2 в тип данных datetime привело к значению вне диапазона

Я знал, что исключение - то, что вы звучите неправильно. Вы должны получить другую ошибку из-за того, что строка datetime упала ниже минимума, который позволяет формат даты sql. Похоже, что ваши сопоставления просто отображаются на неверную схему.

...