2013-04-13 4 views
2

Je suis un peu confus sur la façon de configurer correctement mon modèle. Ci-dessous vous verrez mes POCO et je me demande comment je peux incrémenter automatiquement les ID et s'il est nécessaire de définir l'annotation des données [Key]. Existe-t-il une convention de nommage quelconque permettant à EF de reconnaître l'ID/clé primaire ou dois-je utiliser l'annotation de données [Key]?Comment configurer correctement le modèle, classe POCO?

De même, est-il nécessaire de définir une annotation de données [Key] dans l'entité enfant?

public class User 
{ 
    [Key] 
    public int UserId { get; set; } 
    public string Username { get; set; } 
    public string Password { get; set; } 
    public string Email { get; set; } 
    public DateTime Reg { get; set; } 
    public virtual ICollection<Stats> Stats { get; set; } 
} 

public class Stats 
{ 
    [Key] 
    public int StatId { get; set; } 
    public string Age { get; set; } 
    public string Height { get; set; } 
    public string Weight { get; set; } 
    public bool Sex { get; set; } 
} 

public class BodylogContext : DbContext 
{ 
    public DbSet<User> Users { get; set; } 
    public DbSet<Stats> Stats { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     Database.SetInitializer<BodylogContext>(null); 
     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
    } 
} 

Répondre

0

Je suis juste avec MVC aussi, et je l'ai trouvé que this tutoriel répondu à la plupart des questions que vous avez posées.

Par défaut, Entity Framework interprète une propriété nommée ID ou classnameID comme clé primaire. Ainsi, dans votre classe User, vous n'avez pas besoin de l'attribut [Key] sur la propriété UserId. Dans votre classe Stats, la propriété ne correspond pas au nom de la classe (vous avez pluralisé le nom). Dans ce cas, vous aurez besoin de l'attribut.

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

1

Vous devez rechercher le code Entity Framework Premières tutoriels pour plus de détails.

Plus précisément, dans votre cas et quelques règles de base (disclaimer :) Je ne cherche pas à couvrir tout seulement quelques unes de base ....

  • Vous pouvez supprimer [Key]-
    si vous utilisez <Entity>Id - ou juste Id il est transformé en PK par défaut.
    Idem pour 'FK-s' et apparenté navigation properties (sauf que <Property>Id est également mappé par convention),
    Il est insensible à la casse.

  • identité est par défaut - pour les types pk qui est logique - int, long ... - pas pour les chaînes,

  • Si vous avez more than one pk - alors vous aurez besoin de 'décorer' avec clé - ou dans la configuration fluide,

etc ...

note: vous pouvez régler et à retirer conventions de la configuration fluide.
Egalement depuis EF6 vous pourrez en définir un nouveau pour votre code.

Ma recommandation: Allumez Migrations et rechercher les migrations code de script (fichier .cs) fichier généré. Il a toujours la description claire de ce qui sont des clés, des index etc. La meilleure façon d'apprendre comment votre Db est réellement créée.

+0

Merci J'ai trouvé cela très utile, appréciez votre réponse. – brk

Questions connexes