我有一个Tenant
继承自UserProfile
. 我使用 table-per-type 继承,所以我的上下文类看起来像这样:
// 1 DbSet for superclass UserProfile
public DbSet<LetLord.Models.UserProfile> UserProfile { get; set; }
我正在使用存储库类进行数据访问,并TenantRepository
使用以下包管理器命令创建:
脚手架控制器租户 - 存储库
当我尝试运行我的应用程序时,TenantRepository 中对租户的所有引用都会引发以下错误...
'MyNamespace.MyContext' 不包含定义'Tenant',并且找不到接受第一个参数'MyNamespace.MyContext' 的'Tenant' 的扩展。
...例如以下参考:
public IQueryable<Tenant> All
{
get { return context.Tenant; } // error line here
}
当使用 table-per-type 继承时DbSet
,应该只包含一个 for 基类,所以我明白为什么我会收到错误。
在我的场景中如何使用带有派生类的存储库?
编辑
使用 , 等时如何完成.Add()
上述.Find()
操作.Remove()
?
与上述方法相同的错误:
public Tenant Find(int id)
{
return context.UserProfile.OfType<Tenant>().Find(id); // error at .Find()
}