Comment créer des propriétés non persistantes en utilisant codefirst EF4 ?
MS dit qu'il existe un attribut StoreIgnore, mais je ne le trouve pas.
Existe-t-il un moyen de configurer cela en utilisant EntityConfiguration ?
Comment créer des propriétés non persistantes en utilisant codefirst EF4 ?
MS dit qu'il existe un attribut StoreIgnore, mais je ne le trouve pas.
Existe-t-il un moyen de configurer cela en utilisant EntityConfiguration ?
Actuellement, je connais deux façons de le faire.
Ajoutez le mot clé "dynamic" à la propriété, ce qui empêche le mappeur de la persister :
private Gender gender;
public dynamic Gender
{
get { return gender; }
set { gender = value; }
}
Remplacez OnModelCreating dans DBContext et remappez le type entier, en omettant les propriétés que vous ne voulez pas faire persister :
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Person>().MapSingleType(p => new { p.FirstName, ... });
}
En utilisant la méthode 2, si l'équipe EF introduit Ignore, vous pourrez facilement changer le code en :
modelBuilder.Entity<Person>().Property(p => p.IgnoreThis).Ignore();
Je ne suis pas sûr que cela soit encore disponible.
Sur ce Page MSDN l'attribut Ignore et l'API sont décrits mais ci-dessous, dans les commentaires, quelqu'un écrit le 4 juin 2010 :
Vous serez en mesure d'ignorer les propriétés dans la prochaine version de Code First,
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.