Я пытаюсь понять, как будет работать следующее с использованием EF6 и POCO.
У меня есть следующие классы:
public class User {
public int Id { get; set; }
public virtual ICollection<UserLibrary> libraries{ get; set; }
}
public class UserLibrary {
public int Id { get; set; }
public DateTime CreationDate { get; set; }
public ICollection<AbstractLibrary> { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
}
public abstract class AbstractLibrary
{
public int Id { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public List<LibraryType> LibraryType{ get; set; }
public enum LibraryType{ }
}
public class LibraryB: AbstractLibrary
{
public int x { get; set; }
public new List<LibraryType> LibraryType{ get; set; }
public enum LibraryType
{
LibraryTypeAA,
LibraryTypeAB,
LibraryTypeAC
}
}
public class LibraryB: AbstractLibrary
{
public String y { get; set; }
public new List<LibraryType> LibraryType{ get; set; }
public enum LibraryType
{
LibraryTypeBA,
LibraryTypeBB,
LibraryTypeBC
}
}
У меня есть несколько конкретных классов, которые расширяют AbstractLibrary, и каждый из них имеет другое перечисление LibraryType.
Причина в том, что у User может быть много UserLibrary, а у UserLibrary может быть много конкретных LibraryA, LibraryB (каждая из которых имеет разные свойства, но все имеют LibraryType с разным перечислением).
Мой вопрос: как это переводится в таблицы в EF и как я могу перечислить все «LibraryTypes»?
Надеюсь, мой вопрос достаточно ясен.
LibraryType
вообще существует? Кажется, это совсем бесполезно. - person Tim S.   schedule 22.11.2013AbstractLibrary
? Насколько гибким вам нужно быть, чтобы поддерживать больше? - person Tim S.   schedule 22.11.2013LibraryA.LibraryType
и свойствоLibraryA.LibraryType
никоим образом не связаны с параллельным перечислением и свойствомAbstractLibrary
. Они совершенно разные, и похожее название только сбивает с толку, насколько я вижу.((AbstractLibrary)libraryA).LibraryType
не содержит значенияlibraryA.LibraryType
. - person Tim S.   schedule 22.11.2013