EF Core условные отношения без внешнего ключа - PullRequest
0 голосов
/ 07 января 2019

У меня есть таблица, которая имеет общие столбцы ObjectType (string) и ObjectId (int), которые соответствуют другим таблицам и их первичным ключам соответственно. Каков наилучший способ установить эти условные отношения с EF Core? (Отношение один ко многим). Примечание. Обычно я просто создаю свойства в моделях данных C #, которые запрашивают базу данных об этих условиях, но мои модели данных - просто POCO, у них нет доступа к базе данных.

SQL Server

Table Communication {
    Id int,
    ObjectType string,
    ObjectId int
}

Table Cat {
    Id int,
    ...
}

Table Dog {
    Id int,
    ...
}

C # Модели

class Communication {
    int Id
    string objectType
    int objectId
    Cat cat -> populated if objectType = "Cat"
    Dog dog -> populated if objectType = "Dog"
}

class Cat {
    int Id,
    ...
    List<Communication> communications -> all associated Communications
}

class Dog {
    int Id,
    ...
    List<Communication> communications -> all associated Communications
}

Пример записей базы данных связи

Id    ObjectType    ObjectId
1     Cat           55
2     Cat           78
3     Dog           13
...