Привет знатокам. Опишу суть. Есть несколько типов услуг(Service.cs, ServiceMeetGuest.cs) и тип заявок(Bid.cs, BidMeetGuest.cs). С миграциями в типах услуг все просто.
А вот типы заявок наследуются от обобщенного класса, в обобщенный тип TService указывается вид услуги. Пробовал сделать таким образом:
Есть обобщенный класс:
public class BidBase<TService>
{
public long Id { get; set; }
...
[ForeignKey("Service")]
[Required]
public long ServiceId { get; set; }
public virtual TService Service { get; set; }
}
И обьявление сущности в ApplicationDbContext:
public DbSet<BidBase<Service>> Bids { get; set; }
public DbSet<BidBase<ServiceMeetGuest>> BidsMeetGuest { get; set; }
Как оказалось, Entity Framework не поддерживает обобщенные типы..
Поэтому решил добавить классы:
public class Bid : BidBase<Service> { }
public class BidMeetGuest : BidBase<ServiceMeetGuest> {}
И DbSet's:
public DbSet<Bid> Bids { get; set; }
public DbSet<BidMeetGuest> BidsMeetGuest { get; set; }
Все ок, но связи между ними нету никакой, entity framework воспринимает их как 2 разные сущности, хотя они наследуемы от BaseBid.cs. Как сделать между ними подход Table Per Type (
https://metanit.com/sharp/entityframework/7.2.php) через Fluent Api?