【发布时间】:2015-05-17 13:20:01
【问题描述】:
我正在为我的实体使用 ninject 并创建了一个自定义 dbcontext,它包含我的 poco 类。这是 CusDbContext 。然后,我通过将 *this 作为参数添加到 ApplicationDbContext
的基类构造函数中,将其添加到标识中public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("CusDbContext", throwIfV1Schema: false)
{
}
所以现在在我的 webconfig 中,连接字符串设置为 CusDbContext。这一切都很好。在初始创建时(当我注册用户并且.net 在后台使用所有用户表创建数据库时) 顺便说一下这个数据库是本地的(local)\v11.0
创建了表并添加了用户,一切正常。然后,当我首先为代码添加迁移时,它会声明
在程序集中发现了多个上下文类型
很酷,所以我使用了我的 CusDbContext。
PM>Enable-Migrations -ContextTypeName Library.Data.Concrete.CusDbContext
PM>Add-Migration init
我得到了错误
Library.Data.Concrete.IdentityUserLogin: : EntityType 'IdentityUserLogin' 没有定义键。为此定义密钥 实体类型。
虽然是 viewModel (O.o)
为什么迁移尝试将视图模型添加为实体?有没有办法使用身份默认文件来拥有一种上下文类型?我还是想用ninject。
【问题讨论】:
-
你能证明你没有在
ApplicationDbContext和DbSet<IdentityUserLogin>吗? -
@adricadar 我不知道该怎么做。 IdentityUserLogin 在 AccountViewModel 类文件中。
标签: asp.net-mvc entity-framework asp.net-identity