Question

personne ne sait de façon comment je pourrais mettre à travers la cartographie de la valeur par défaut d'une colonne ainsi pour exemple quand je produis DB à partir mappings je devrais DATETIME avoir getdate () comme valeur par défaut?

J'ai essayé jusqu'à présent cette (ressemble exactlly comme ce que j'ai besoin), mais il ne fonctionne pas

this.Map(x => x.LastPersistedOn, "DateModified") 
    .Access.Property() 
    .Default("getdate()"); 
Était-ce utile?

La solution

Je viens essayé de placer des valeurs par défaut et cela a fonctionné comme prévu. J'utilise Fluent comme récupérer de l'Git 24.05.2010 mise à jour afin que votre copie peut résoudre votre problème.
Cartographie

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()");
   }
}

ce qui produira l'instruction SQL suivante (à partir de la sortie de la console)

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

-
Dom

Autres conseils

La façon de le faire est d'attribuer le DateTime en cours dans le code plutôt que d'utiliser la valeur par défaut dans la base de données. Ensuite, le traiter comme une colonne normale. Semblait un peu étrange pour moi d'abord venir d'un arrière-plan de la conception basée sur des modèles, mais la gestion des valeurs par défaut au niveau POCO est le moyen DDD de le faire.

Ce serait bien d'entendre les opinions des autres aussi

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top