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

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

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

this.Map(x => x.LastPersistedOn, "DateModified") 
    .Access.Property() 
    .Default("getdate()"); 
6
задан marc_s 15 October 2009 в 12:50
поделиться

2 ответа

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

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

With

 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
  )

--
Dom

6
ответ дан 10 December 2019 в 00:41
поделиться

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

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

4
ответ дан 10 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: