Предположим, у нас есть следующий класс:
public class MyEntity
{
public Guid Id { get; set; }
public int EntityType { get; set; }
public List<integer> DataValues { get; set; }
}
Структура таблицы выглядит следующим образом:
MyEntity
Id uniqueidentifier
Я хочу сохранить значения для DataValues в разных таблицах в зависимости от EntityType. Так, например, MyEntity1 будет иметь два целочисленных поля, а MyEntity2 может иметь три целочисленных поля.
MyEntity1
EntityId (FK to MyEntity)
Integer1 int
Integer2 int
MyEntity2
EntityId (FK to MyEntity)
Integer1 int
Integer2 int
Integer3 int
Так что, если у меня есть экземпляр типа «MyEntity1», мои таблицы будут иметь следующие значения:
MyEntity
Id EntityType
---------------------
someguid1 1
MyEntity1
EntityId Integer1 Integer2
------------------------------
someguid1 100 200
Во время выполнения другой класс, скажем, MyEntityDefinition хранит, сколько целых чисел хранит сущность, обращаясь к этому классу, я могу знать, что если сущность имеет тип MyEntity1, то она содержит два целочисленных значения.
Я бы хотел сопоставить эту структуру таблицы с классом MyEntity, есть ли возможные способы сделать это?
PS: я не хочу определять классы MyEntity1, MyEntity2. Я просто хочу использовать структуру таблицы (MyEntity, MyEntity1, MyEntity2) для хранения данных.
В основном я оценивал сценарии EF 4.1 в тех случаях, когда определения сущностей не являются фиксированными и могут обновляться пользователями. Информация (метаданные) об объектах хранится в других таблицах