0

У меня есть следующая ситуация в моей модели:Entity Framework - Отношения в таблице на тип наследования

public abstract class Person 
{ 
public int PersonId { get; set; } 
public int FullName { get; set; } 

public int LanguageId { get; set; } 
} 

public class Student : Person 
{ 
public int PersonId { get; set; } 
. 
.//some data 
. 
} 

public class Teacher : Person 
{ 
public int PersonId { get; set; } 
. 
.//some data 
. 
} 

public class Language 
{ 
public int LanguageId { get; set; } 
public string Name { get; set; } 
} 

Я использовал TPT подход наследования, и все хорошо работать. Моя проблема: я хочу добавить класс языка, где у человека есть язык, а на языке есть много людей, поэтому это отношения «один ко многим». Но в подходе TPT свойства навигации не могут быть унаследованы, поэтому я не могу создать класс Language Object in Person, и ни отношения в классе сопоставления, я не хочу создавать свойство Navigation в классе Language, потому что в этой таблице много отношения в моей модели, и я не хочу удалять LanguageId в классе Person, потому что это общее свойство для всех подклассов.

Я исследовал в нескольких книгах, статьях и здесь, но я ничего не нашел. Во всех примерах объясняют ту же ситуацию (например, here), но с отношением в противоположном направлении.

Буду признателен за вашу помощь, спасибо.

ответ

0

Как вы говорите в режиме TPT Навигационные свойства не могут быть унаследованы.

Одним из решений было бы добавить отношение к языковому классу на уровне Учителя и Студента.

Другим было бы перейти к таблице за один подход к иерархической системе.

 Смежные вопросы

  • Нет связанных вопросов^_^