У меня есть классы, которые используют наследование, как в
Учитель: Человек: Entity: BaseObject
Студент: Человек: Entity: BaseObject
Компания: Entity: BaseObject et c.
Базовый объект имеет абстрактное свойство IEnumerable под названием Hierarchy
Entity class реализует Hierarchy как new List<Type>() { typeof(Entity) };
Person class реализует Hierarchy как new List<Type> { typeof(Person), typeof(Entity)};
et c.
В моем методе db.Save я пытаюсь по очереди применить объект к каждому из этих типов, чтобы я мог вызвать правильную хранимую процедуру.
public static void SaveObject(BaseObject obj)
{
foreach (var type in obj.Hierarchy) //obj.Hierarchy is IEnumerable<Type>
{
Object o = obj as type;
//.....
}
}
но я получаю ошибка «тип является переменной, но используется как тип». Можно ли каким-либо образом привести свой дочерний объект к одному из его родительских типов в этих строках?