У меня есть объекты, которые выглядят так:
class Parent1
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Child> Children { get; set; }
}
class Parent2
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Child> Children { get; set; }
}
class Child
{
public int Id { get; set; }
public string Name { get; set; }
public string ParentType { get; set; }
public int ParentId { get; set; }
}
в основном в моем случае у меня есть таблица Child, которая содержит ссылку на разных типов родителей, но только по одному за раз. Я не могу понять, как создать ModelBuilder
отображение для решения этой проблемы.
когда я использую entity.HasMany(d => d.Children)
, я не вижу способа сопоставить его с ParentType = "Parent1"
и ParentId = d.Id
возможно ли это даже в EFCore 2.X
Обновление 1:
У меня есть ограничение, что я не могу изменить дизайн моей таблицы, который выглядит так на child_table
------------------------------------------------
| Id | Name | Parent_Type | Parent_Id |
------------------------------------------------
| 1 | C1 | Parent1 | 1 |
| 2 | C2 | Parent2 | 1 |
| 2 | C3 | Parent2 | 1 |
| 2 | C4 | Parent1 | 1 |
| 2 | C5 | Parent2 | 1 |
------------------------------------------------