使用实体框架代码首先使用具有不同上下文的外键

时间:2015-12-13 19:29:40

标签: asp.net-mvc entity-framework ef-code-first asp.net-identity ef-migrations

我有一个全新的ASP.NET MVC 5项目,其中一个DbContext使用Entity Framework 6.1和Identity 2.2.1。尝试使用IoC,我创建了第二个DbContext和一些属于第二个上下文的类。

这些类中的大多数都具有Identity 2.2.1中IdentityUser类的外键。我遇到的问题是,当我尝试使用Add-Migrations时,我收到以下错误:

  

在模型生成期间检测到一个或多个验证错误:

     

{MyProjectName} .DataContexts.IdentityUserLogin :: EntityType'IdentityUserLogin'没有定义键。定义此EntityType的密钥。

     

{MyProjectName} .DataContexts.IdentityUserRole :: EntityType'IdentityUserRole'没有定义键。定义此EntityType的密钥。

     

IdentityUserLogins:EntityType:EntitySet'IdentityUserLogins'基于没有定义键的类型'IdentityUserLogin'。

     

IdentityUserRoles:EntityType:EntitySet'IdentityUserRoles'基于类型'IdentityUserRole',没有定义键。

当我将从第二个上下文创建的类移动到初始上下文中时,我没有收到任何错误,并且数据库表按预期构建。

如何保持IoC并使外键限制与EF和CodeFirst一起正常工作?

样品

您可以在https://github.com/RoLYroLLs/MultiDbContextForeignKeySample找到示例项目。要重新创建错误,请在程序包管理器控制台上运行此命令:

Enable-Migrations -MigrationsDirectory "DataContexts\ClientMigrations" -ContextTypeName MultiDbContextForeignKeySample.DataContexts.ClientDbContext

0 个答案:

没有答案