0
我有一个类Tenant
继承自UserProfile
。我使用的table-per-类型继承,所以我的上下文类看起来是这样的:使用MVC脚手架存储库与继承类(表类型)不起作用
// 1 DbSet for superclass UserProfile
public DbSet<LetLord.Models.UserProfile> UserProfile { get; set; }
我使用存储库类我的数据访问和我创建TenantRepository
用下面的软件包管理器命令:
脚手架控制器租客-repository
当我尝试运行我的应用程序,在TenantRepository到租客的所有引用抛出下面的错误...
'MyNamespace.MyContext'不包含'Tenant'的定义,并且找不到'Tenant'接受第一个参数'MyNamespace.MyContext'的扩展名。
......比如下面的参考:
public IQueryable<Tenant> All
{
get { return context.Tenant; } // error line here
}
当使用表每类型继承只有DbSet
为基类应该包括在内,所以我明白为什么我得到错误。
如何在像我这样的场景中实现派生类的存储库?
编辑
使用.Add()
,.Find()
,.Remove()
等时,如何在上面实现的呢?如上面对于前面提到的方法描述
同样的错误:
public Tenant Find(int id)
{
return context.UserProfile.OfType<Tenant>().Find(id); // error at .Find()
}
谢谢,这工作,但请参阅编辑RE其他库的方法。 – MattSull 2013-02-27 14:52:01
我不知道这些方法是什么样子,但我会给它一个镜头。 – Dismissile 2013-02-27 14:54:09
它们是在运行问题中描述的包管理器命令时自动创建的存储库类的一部分。 – MattSull 2013-02-27 14:56:52