Наследование и отношения на базовом абстрактном классе с MVC, EF - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть этот пример проекта:

Модель:

public class Country
{
 public int ID{get; set;}
 public string CountryName{get; set;}
}

public abstract class Subject
{
  public int CountryID{get; set;}
}

public class Person : Subject
{
 public string PersonName{get; set;}
}

public class Company : Subjet
{
 public string CompanyName{get; set;}
}

Контекст:

public class SampleContext : DbContext
{
 public DbSet<Contry> Countries{get; set;}
 public DbSet<Person> Persons{get; set;}
 public DbSet<Company> Companies{get; set;}

 modelBuilder.Entity<Person>().Map(m => { m.MapInheritedProperties();ToTable("Person"); });
 modelBuilder.Entity<Company>().Map(m => { m.MapInheritedProperties();ToTable("Company"); });
}

И я получаю эту ошибку.

Ошибка 3013: проблема в фрагменте сопоставления, начинающемся со строки xxx: отсутствует сопоставление таблицы: ограничение внешнего ключа Subject_Country из таблицы Subject (CountryID)

Но, тема абстрактна, и я не использую такую ​​таблицу в БД. Когда я использую в классе Subject только такие параметры, как int или string, все в порядке. Но когда я хочу использовать некоторые отношения, я получаю эту ошибку.

Большое спасибо за помощь.

1 Ответ

0 голосов
/ 02 ноября 2011

В вашем SampleContext неправильно указано название «Страна».

public DbSet<Contry> Countries{get; set;} 

Должно быть:

public DbSet<Country> Countries{get; set;} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...