2011-04-08 54 views
0

我對以下實體關係有點困惑。因爲它擁有一個以上的用戶關係。我覺得有什麼不對。它有什麼不對嗎?相同的導航類型在EF 4.1中更多

public class Subject: Entity 
{ 
    public Advert() 
    { 
     CreateDate = DateTime.Now; 
    } 
    public virtual User Owner{ get; set; } 
    public virtual List<User> Voters{ get; set; } 
    public virtual List<User> Followers{ get; set; } 
} 

回答

2

我不確定這是否適用於您列表,這應該是EF CodeFirst標準的ICollections。

您也可能想要使用繼承來區分不同類型的用戶,或者爲追隨者和選民設置不同的實體。

你需要這個使用WithMany()

這將允許您指定的外鍵的關係

http://weblogs.asp.net/manavi/archive/2011/01/23/associations-in-ef-code-first-ctp5-part-3-one-to-one-foreign-key-associations.aspx

protected override void OnModelCreating(ModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<User>() 
       .HasRequired(a => a.BillingAddress) 
       .WithMany() 
       .HasForeignKey(u => u.BillingAddressId); 

    modelBuilder.Entity<User>() 
       .HasRequired(a => a.DeliveryAddress) 
       .WithMany() 
       .HasForeignKey(u => u.DeliveryAddressId); 
} 
+0

你怎麼看待分離名單什麼選民成映射具有User Voter屬性的名爲Vote的新實體? – Freshblood 2011-04-08 20:23:41

+0

那麼你可以擁有投票價值(肯定否定)+用戶(選民) – 2011-04-08 20:43:28