У меня есть класс Tenant
, который наследуется от . Я использую таблицы в-типа наследования, так мой контекст класса выглядит следующим образом:Использование хранилища лесов для MVC с унаследованными классами (таблица за тип) не работает
// 1 DbSet for superclass UserProfile
public DbSet<LetLord.Models.UserProfile> UserProfile { get; set; }
Я использую классы хранилища для моего доступа к данным и я создал TenantRepository
с помощью следующей команды менеджера пакетов:
Эшафот контроллер Арендатором -Repository
Когда я пытаюсь запустить мое приложение, все ссылки на Арендатор в TenantRepository бросить следующее сообщение об ошибке ...
«MyNamespace.MyContext» не содержит определения «Арендатор» и никакого расширения для «Арендатора», принимающего первый аргумент «MyNamespace.MyContext».
... такие как следующей ссылке:
public IQueryable<Tenant> All
{
get { return context.Tenant; } // error line here
}
При использовании таблицы в-типа наследования только DbSet
для базовых классов должны быть включены, так что я понимаю, почему я получаю сообщение об ошибке ,
Как использовать репозитории с производными классами, реализованными в таких сценариях, как мой?
EDIT
Как выше достигается при использовании .Add()
, .Find()
, .Remove()
и т.д.?
же ошибка, как описано выше для ранее упомянутых методов:
public Tenant Find(int id)
{
return context.UserProfile.OfType<Tenant>().Find(id); // error at .Find()
}
Спасибо, что работает, но смотрите редактировать RE другие хранилища методов. – MattSull
Я не знаю, как выглядят эти методы, но я дам ему шанс. – Dismissile
Они являются частью класса репозитория, который автоматически создается при запуске команды диспетчера пакетов, описанной в вопросе. – MattSull