Подтвердить что ты не робот

Установить значение по умолчанию в формате EF datetime

Попытка установить значение по умолчанию для поля datetime для текущего времени. В конструкторе полей SQL я бы использовал getdate(). Что я должен использовать в дизайнере Entity Framework?

ТНХ

4b9b3361

Ответ 1

Задайте ' StoredGeneratedPattern' до Computed для поля в EDMX.

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

Ответ 2

Основываясь на Ответ RPM1984:

  • Выберите поле, которое имеет значение по умолчанию, Created_On в моем примере, в вашем файле EDMX
  • Перейдите на панель Свойства
  • Выберите атрибут StoreGeneratedPattern
  • Затем измените значение на Вычисленное

EDMX to Properties panel

Ответ 3

kidos для этого ответа, хотя это не сработало для меня после установки значения StoreGeneratedPattern значения Вычисленный, но значение атрибута StoreGeneratedPattern для Identity работал у меня, я устанавливал default "Guid" для UserID UNIQUEIDENTIFIER типа

Ответ 4

Установка значений по умолчанию в Entity Framework 5 и 6 путем изменения файла шаблонов T4

Сделано ниже изменений в .tt(файл шаблона) удалите, если условие в строке 34

34 if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any())
35 {

добавить

59 OnCreated();
60 }
61
62 partial void OnCreated();
63 <#

ссылаться на это изображение http://i.stack.imgur.com/DdlNB.png красный означает удаление и зеленый означает добавить

Это добавит конструктор во всех классах сущностей с помощью метода OnCreated.

Как ниже

public partial class Category
{
    public Category()
    {
      this.Products = new HashSet<Product>();
      OnCreated();
    }

 partial void OnCreated();
 public int Id { get; set; }
 public string Name { get; set; }

 public virtual ICollection<Product> Products { get; set; }
}

Затем создайте файл класса с использованием того же пространства имен, что и для Entities.

public partial class Category
{
   partial void OnCreated()
   {
      Name = "abc"
   }
}

см. ниже ответ для получения более подробной информации fooobar.com/questions/244168/...

Ответ 5

Щелкните правой кнопкой мыши edmx, откройте с помощью xml-редактора, найдите "ProviderManifestToken" с 2008 по 2005. Сохранить.