modelBuilder.Les Configurations.Ajouter et modelBuilder.Entité sur OnModelCreating
Je viens de commencer à travailler sur entity framework code first approche, j'ai écrit deux approches ci-dessous et les deux fonctionnent très bien.
S'il vous plaît laissez-moi savoir ce que sont les concepts de base de ces approches et de ce qui devrait suivre?
Approche 1 : À L'Aide De EntityTypeConfiguration
public class BlogsMap : EntityTypeConfiguration<Blog>
{
public BlogsMap(string schema)
{
ToTable("BLOG");
HasKey(t => t.BlogId);
Property(t => t.BlogId).HasColumnName("BLOGID");
Property(t => t.Name).HasColumnName("NAME");
Property(t => t.Url).HasColumnName("URL");
}
}
public class BlogContext : DbContext
{
public BlogContext(string name)
: base(name)
{
}
public IDbSet<Blog> BLOG { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new BlogMap(string.Empty));
}
}
Approche 2 :
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public virtual List<Post> Posts { get; set; }
}
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>();
}
}
Merci de me fournir un concept/les blogs sur l'entité,puisque je viens de commencer.
Vous devez vous connecter pour publier un commentaire.
Vous avez plusieurs façons de configurer votre entités. Ci-dessous je vais vous montrer trois manières,l'une utilisant DataAnnotations et deux à l'aide Api Fluent.
La première variante est à l'aide de DataAnnotations. Vous pouvez utiliser des attributs(DataAnnotations) pour configurer vos classes d'entités et les propriétés.DataAnnotations attributs remplace le Code par défaut Premières conventions:
Puis, dans votre contexte de la classe, vous n'avez pas besoin de remplacer le OnModelCreating méthode, EF utiliser l'attribut de mapper les entités et les relations (il va créer un 1 à plusieurs relations entre le blog et le post):
Configuration avec Annotations de Données est assez simple et il peut être juste ce que vous cherchez. Mais les Données les Annotations seulement vous permettre d'accéder à un sous-ensemble des configurations possibles (bien que beaucoup plus que vous avez vu jusqu'à présent). Le API Fluent , cependant, vous donne accès à encore plus, alors vous préférerez peut-être pour cette raison.
Avec Api Fluent vous n'avez pas besoin d'utiliser les attributs de mapper les champs et les relations de vos classes d'entités. Il y a deux façons d'utiliser les Api Fluent:
1-Cartographie des entités (des champs et des relations) dans le
OnModelCreating
méthode dans votre contexte (Votre deuxième Approche):2-La deuxième variante à l'aide Api Fluent est la création de la cartographie des classes (Premier). De cette façon, vous pouvez configurer vos Entités dans les classes qui héritent de
EntityTypeConfiguration<TEntity>
:Alors, pour inclure les mappages dans votre contexte, vous devez les ajouter dans la
OnModelCreating
méthode:La meilleure façon d'ajouter de la configuration est à cette façon:
Cette dernière variante, la première approche) pour moi, c'est la meilleure raison pour que vous ne touchez pas à votre modèle de classes (ajout d'attributs) pour spécifier ce que vous voulez et est plus souple si vous voulez ajouter une nouvelle entité ou de changer quelque chose.