我有一個帶有共享表和成員表的電話簿共享表必須有2個FK作爲所有者,另一個作爲聯合成員,但我可以不是模型,可以真正做到:在MVC模型中定義2個外鍵EntityFrameWork代碼優先
這是我的DB型號:
public class PhoneBookDB : DbContext {
public DbSet<Member> Members { get; set; }
public DbSet<ContactKind> ContactKinds { get; set; }
public DbSet<Contact> Contacts { get; set; }
public DbSet<NumberKind> NumberKinds { get; set; }
public DbSet<Number> Numbers { get; set; }
public DbSet<AddressKind> AddressKinds { get; set; }
public DbSet<Address> Addresses { get; set; }
public DbSet<City> Cities { get; set; }
public DbSet<Group> Groups { get; set; }
public DbSet<ShareAccess> ShareAccesses { get; set; }
public DbSet<Share> Shares { get; set; }
}
這就是分享的模式:
public class Share {
public long Id { get; set; }
public Group Group { get; set; }
public ShareAccess ShareAccess { get; set; }
public Member Owner { get; set; }
public Member JointMember { get; set; }
}
,這是會員的型號:
public class Member {
public long Id { get; set; }
public string UserName { get; set; }
public virtual ICollection<Group> Groups { get; set; }
public virtual ICollection<Share> OwnerShares { get; set; }
public virtual ICollection<Share> JointShares { get; set; }
public virtual ICollection<NumberKind> NumberKinds { get; set; }
public virtual ICollection<AddressKind> AddressKinds { get; set; }
}
這種設計的車型我有4 FK股價表成員表在DB的,也是我不能訪問會員型號
像這樣分享的元素:
db.Members.Single(m => m.Shares.Any(sh => sh.Id == item.Id))
或這一個:
db.Shares.Single(sh => sh.Id == item.Id).JointMember
但他們都返回空。
我嘗試更多版本的模型,例如:一個ICollection在成員或一個成員在共享模型中的道具,但沒有一個給我一個真正的數據庫表和答案。 我也需要共享的ATLEAST一個集會員型號爲會員取回股份元素,你也知道我的EFCodeFirst編碼,我需要一種方法來解決這個問題,謝謝