У меня есть телефонная книга с таблицей общего доступа и таблицей участников. В общей таблице должно быть 2 FK для одного участника, а в качестве владельца - другое, но я не могу смоделировать ее по-настоящему:
Это моя БД Модель:
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.Members.Single(m => m.Shares.Any(sh => sh.Id == item.Id))
или этот:
db.Shares.Single(sh => sh.Id == item.Id).JointMember
но они оба возвращают Нуль.
Я пробую больше версий моделей, таких как: одна ICollection в Member или одна опора Member в Share Model, но ни одна из них не дает мне настоящих таблиц БД и ответа.
Кроме того, мне нужно, по крайней мере, одну коллекцию общих ресурсов в модели участников для получения элемента общих ресурсов по элементам, как вы знаете, я закодировал EFCodeFirst, и мне нужен способ решения этой проблемы, спасибо