Pergunta

Alguém sabe como eu poderia definir o mapeamento do valor padrão de uma coluna, por exemplo, quando eu gerar DB a partir de mapeamentos, eu teria coluna DateTime tendo getDate () como valor padrão?

Eu tentei até agora isso (parece exatamente o que eu preciso), mas não funciona

this.Map(x => x.LastPersistedOn, "DateModified") 
    .Access.Property() 
    .Default("getdate()"); 
Foi útil?

Solução

Eu apenas tentei definir alguns valores padrão e funcionou como esperado. Estou usando o Fluent conforme recuperar o Git, o 24.05.2010, portanto, a atualização da sua cópia pode resolver seu problema.
Mapeamento

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

Com

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

Isso produzirá o seguinte SQL (da saída para o console)

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

--
Dom

Outras dicas

A maneira de fazer isso é atribuir o datetime atual no código, em vez de usar o valor padrão no banco de dados. Em seguida, trate -o como uma coluna normal. Pareceu um pouco estranho para mim a princípio, proveniente de um fundo de design orientado a modelos, mas o gerenciamento de valores padrão no nível POCO é a maneira DDD de fazê-lo.

Seria bom ouvir as opiniões dos outros também

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top