2012-01-23 15 views
1

MVCプロジェクトで最初にEFコードを使用して多対多リレーションシップを作成しようとしています。私は多くのサブカテゴリを持つことができる多くのカテゴリを持つことができるサービスを持っているシナリオを持っています。このビットは正常に動作しているようです。ASP.NET MVC3 EFコードファースト - 多対多の関係

各サービス、カテゴリ、サブカテゴリには、多くのHelpDeskMembersを関連付けることもできます。これが、私が関連付けを作成するのに苦労しているところです。以下のクラスでは、EFがService_HelpDeskMembers、Category_HelpDeskMembers、およびSubcategory_HelpDeskMembersテーブルを作成することを期待していました。誰かが正しい方向に私を導くことができますか?

P.S.ナビゲーションプロパティでは、AJAXとJSONを使用してサービス/カテゴリ/サブカテゴリ間のカスケードドロップダウンリストを作成し、 '仮想'を使用しているため仮想を使用していません。循環参照エラーが発生しました。

ここに私のクラスがあります。

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; } 
} 

ありがとうございます。

答えて

3

ここにトリックはの詳細については、この記事を見てみましょうあなたはデシベルで期待どおりそれは(リンクテーブルで)

に機能します、多くのリンクに多くを作成するために、モデルビルダーを使用することです何度も何度もやる方法http://blogs.microsoft.co.il/blogs/gilf/archive/2011/08/01/creating-a-many-to-many-mapping-using-code-first.aspx

+0

ありがとう! DBは、私が望むだけで作成されています。それが初めて働いたとは信じられない! :-) –

+0

EF CodeFirstは素晴らしいです:)現在もベータにある新しいMigrationsのものを見てください –