Вы можете создать промежуточную сущность для сопоставления с различными типами сущностей. :
Public class EntityMap
{
public int Id {get;set;}
public string EntityKind {get;set;} // could be "Plant", "Area", "Unit", "Schema"
}
public class Plant
{
public int Id {get;set;}
public string EntityKind {get;set;} = "Plant";
}
public class EntitySchema
{
public int Id {get;set;}
public int EntityMapId {get;set;}
public EntityMap Map {get;set;}
}
Логика c для чтения данных из отдельной схемы должна быть реализована в клиенте, но общие свойства сущностей могут быть добавлены в EntityMap. Вот аналогичный ответ, на который вы можете сослаться: { ссылка }