FluentNHibernate - Установка значения по умолчанию для столбцов базы данных (SQL Server)

StackOverflow https://stackoverflow.com/questions/1571779

Вопрос

кто-нибудь знает способ, как я мог бы установить с помощью сопоставления значения столбца по умолчанию, например, длякогда я генерирую DB из сопоставлений, у меня будет столбец DateTime, имеющий getdate() в качестве значения по умолчанию?

Я пробовал до сих пор это (выглядит точно так, как мне нужно), но это не работает

this.Map(x => x.LastPersistedOn, "DateModified") 
    .Access.Property() 
    .Default("getdate()"); 
Это было полезно?

Решение

Я просто попытался установить некоторые значения по умолчанию, и это сработало, как ожидалось.Я использую Fluent в качестве извлечения из Git от 24.05.2010, поэтому обновление вашей копии может решить вашу проблему.
Отображение

public class SampleEntity
{
    public virtual DateTime DateTimeProperty { get; set; }
}

С

 public class SampleEntityMap
        : ClassMap<SampleEntity>
{
   public SampleEntityMap()
   {
    Map(x => x.DateTimeProperty, "DateTimeColumn")
             .Access.Property()  //actually not necessary 
             .Not.Nullable()
             .Default("getDate()");
   }
}

это приведет к созданию следующего sql (из вывода на консоль)

create table SampleEntity(
   DateTimeColumn DATETIME default  getDate()  not null
  )

--
Дом

Другие советы

Способ сделать это - назначить текущую дату и время в коде, а не использовать значение по умолчанию в базе данных.Затем относитесь к нему как к обычному столбцу.Сначала мне показалось немного странным исходить из опыта проектирования, основанного на модели, но управление значениями по умолчанию на уровне POCO - это DDD-способ сделать это.

Было бы неплохо услышать и мнение других

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top