EF4.1 вставка текущей даты / времени - PullRequest
0 голосов
/ 18 ноября 2011

Часто в моей базе данных SQL Server я объявляю поле CreatedDate. Он имеет значение, не равное нулю, и значением по умолчанию является GetDate (). Это прекрасно работает, чтобы принудительно создать дату.

Я не могу понять, как это сделать, используя EF4.1. Я вижу, что в конструкторе есть место для значения по умолчанию, но я не уверен, что смогу ввести функцию для этого.

Я также попытался установить его как обнуляемый в конструкторе EF, и просто позволил SQL Server заполнять его, но это не понравилось.

Какой совет?

1 Ответ

1 голос
/ 18 ноября 2011

Нельзя использовать GetDate при использовании EF, если вы не пометите столбец CreatedDate как StoreGeneratedPattern - Identity. В таком случае вы не сможете установить это значение в своем приложении, и база данных будет нести ответственность за это.

Если вы не установите StoreGeneratedPattern, вы должны установить данные в своем приложении (дизайнер не позволяет установить значение по умолчанию для текущей даты). Таким образом, вы должны либо вручную заполнить CreatedDate, либо использовать какой-то трюк, например свою собственную частичную часть класса сущности, с конструктором по умолчанию, устанавливающим это свойство:

public partial class YourEntity
{
    public YourEntity()
    {
        CretedDate = DateTime.Now;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...