J'essaie de créer une relation plusieurs-à-plusieurs en utilisant le code EF d'abord dans mon projet MVC. J'ai un scénario où j'ai un service qui peut avoir plusieurs catégories qui peuvent avoir plusieurs sous-catégories. Ce bit semble fonctionner correctement.Code EF ASP.NET MVC3 Premier - relations plusieurs-à-plusieurs
Chaque service, catégorie et sous-catégorie peut également être associé à plusieurs membres HelpDeskMembers. C'est là que j'ai de la difficulté à créer l'association. Avec les classes ci-dessous, je m'attendais à ce qu'EF crée des tables Service_HelpDeskMembers, Category_HelpDeskMembers et Subcategory_HelpDeskMembers. S'il vous plaît quelqu'un peut-il me guider dans la bonne direction?
P.S. Dans les propriétés de navigation, je n'utilise pas de virtual car j'utilise AJAX et JSON pour créer des listes déroulantes en cascade entre Service/Category/Subcategory et en utilisant 'virtual', j'obtenais une erreur de référence circulaire.
Voici mes cours.
public class Service
{
[Key]
public int ServiceID { get; set; }
public string Title { get; set; }
public DateTime CreatedDate { get; set; }
public HelpDeskMember CreatedBy { get; set; }
public DateTime? DeletedDate { get; set; }
public HelpDeskMember DeletedBy { get; set; }
public ICollection<Category> Categories { get; set; }
public ICollection<HelpDeskMember> LinesOfSupport { get; set; }
}
public class Category
{
[Key]
public int CategoryID { get; set; }
[ForeignKey("Service")]
public int ServiceID { get; set; }
public string Title { get; set; }
public DateTime CreatedDate { get; set; }
public HelpDeskMember CreatedBy { get; set; }
public DateTime? DeletedDate { get; set; }
public HelpDeskMember DeletedBy { get; set; }
public Service Service { get; set; }
public ICollection<Subcategory> Subcategories { get; set; }
public ICollection<HelpDeskMember> LinesOfSupport { get; set; }
}
public class Subcategory
{
[Key]
public int SubcategoryID { get; set; }
[ForeignKey("Category")]
public int CategoryID { get; set; }
public string Title { get; set; }
public DateTime CreatedDate { get; set; }
public HelpDeskMember CreatedBy { get; set; }
public DateTime? DeletedDate { get; set; }
public HelpDeskMember DeletedBy { get; set; }
public Category Category { get; set; }
public ICollection<HelpDeskMember> LinesOfSupport { get; set; }
}
public class HelpDeskMember
{
public int HelpDeskMemberID { get; set; }
public string Name { get; set; }
public bool Admin { get; set; }
public bool Available { get; set; }
public DateTime? CreatedDate { get; set; }
public DateTime? LastLogin { get; set; }
public DateTime? DeletedDate { get; set; }
public DateTime? DeletedBy { get; set; }
public ICollection<Service> Services { get; set; }
public ICollection<Category> Categories { get; set; }
public ICollection<Subcategory> Subcategories { get; set; }
}
Merci d'avance.
Merci! La base de données a été créée exactement comme je le veux. Je ne peux pas croire que cela a fonctionné la première fois! :-) –
EF CodeFirst est génial :) jetez un coup d'oeil aux nouveaux trucs Migrations qui sont actuellement en BETA qui est aussi vraiment cool –