Я пробовал несколько вещей перед тем, как приходить сюда, например, различные модели, аннотации, объявления в DbContext, различные свободно используемые API-интерфейсы, но я не могу понять, в чем проблема.Реляционные таблицы наследования Entity Framework
У меня есть запись YogaClass, но когда я перебираю подписки от человека, у меня есть подписка, но нет YogaClass (NULL) и да. Я включаю (Person.Subscriptions) при запросе БД, я получаю а не связанный с ним реляционный YogaClass/WorkShop.
Короче у меня есть следующие классы:
Подписка (базовый класс)
public class Subscribtion
{
[Key]
public int SubscribtionID { get; set; }
public Person Person { get; set; }
public bool IsPayed { get; set; }
}
WorkshopSubscription (inherrits Подписка)
public class WorkshopSubscribtion : Subscribtion
{
[Key]
public int WorkshopSubscribtionID { get; set; }
public Workshop Workshop { get; set; }
}
YogaClassSubscription (inherrits Подписка)
public class YogaClassSubscribtion : Subscribtion
{
[Key]
public int YogaClassSubscribtionID { get; set; }
public YogaClass YogaClass { get; set; }
}
YogaClass (базовый класс)
public class YogaClass
{
[Key]
public int YogaClassID { get; set; }
public List<Subscriptions> Subscriptions { get; set; }
}
WorkShop (базовый класс)
public class WorkShop
{
[Key]
public int WorkShopID { get; set; }
public List<Subscriptions> Subscriptions { get; set; }
}
Теперь после того, как я ввожу некоторые записи в Сеялка я следующие проблемы, когда я смотрю в моей базе данных:
Таблица Subscription: SubscriptionID: 1, WorkShop_WorkShopID: NULL, YogaClass_YogaClassID: NULL. (Почему они оба NULL?)
Таблица YogaClassSubscription: SubscriptionId: 1, YogaClassID: 1 же для мастерской.
Я не понимаю, почему FK от йоги & Подписка на подписку является NULL в таблице подписки.
У меня есть DbSet, объявленный в моем контексте и в методе API-интерфейса modelBuilder, я сопоставил YogaClassSubscribtion & WorkShopSubscribtion с их собственной таблицей.
public DbSet<Subscribtion> Subscribtions { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<WorkshopSubscribtion>().ToTable("WorkshopSubscribtions");
modelBuilder.Entity<YogaClassSubscribtion>().ToTable("YogaClassSubscribtions");
}
Почему это проще для публикации скриншотов, чем для копирования кода? – RandomStranger
Я нахожу его нечитаемым вообще при вставке кода, да, если я получу часть, вставляющую код, полностью работаю, но я этого не делаю, я заменяю «вводить код здесь» кодом, но только его частичный код, это проще. Однако, если вы хотите, я могу вставить код. –
Как вы видите, я не могу правильно отобразить весь код, и я делаю это точно так же ... Снова извините, но idk, как это происходит. –