创建AspNetUsers外键到另一个DBContext使用的表

时间:2019-03-08 14:03:09

标签: c# asp.net-mvc entity-framework

问题

我想将IdentityDb表的外键实现为其他contextdb使用的其他表。

我有2个数据库上下文,一个是默认数据库上下文(我使用个人用户帐户项目模板创建了一个MVC 5项目),另一个是我自己创建的上下文,该数据库使用默认上下文以外的其他表。

ApplicationDbContext中,我们有一个AspNetUsers表,该表具有许多列,但是我感兴趣的是Id。在另一个ContextDB中,我有一个名为Checkout的表,该表也有许多列,而我感兴趣的是Id。现在,我想实现一个many to many关系。因此,我创建了另一个表,让我们调用具有CheckoutProducts列的UserId表,该表将是引用AspNetUsers中主键的外键,而我有CheckoutId同样是引用Checkout表中主键的外键。

如何在代码中执行以上操作?

脚本

public class CheckoutUsers
    {
        [Key, Column(Order = 0)]
        [ForeignKey("User")]
        [MaxLength(128)]
        public string UserId { get; set; }

        [Key, Column(Order = 1)]
        [ForeignKey("Checkout")]
        public int CheckoutId { get; set; }

        public virtual ApplicationUser User { get; set; }
        public virtual Checkout Checkout { get; set; }
    }

当我运行应用程序时,它返回:

  

System.Data.Entity.ModelConfiguration.ModelValidationException:'在模型生成过程中检测到一个或多个验证错误:   ShopOnline.App_Start.IdentityUserLogin::EntityType'IdentityUserLogin'没有定义键。定义此EntityType的键。   ShopOnline.App_Start.IdentityUserRole::EntityType'IdentityUserRole'没有定义键。定义此EntityType的键。   CheckoutUsers_User_Source::多重性在关系“ CheckoutUsers_User”中的角色“ CheckoutUsers_User_Source”中无效。因为从属角色属性不是关键属性,所以从属角色多重性的上限必须为'*'。   IdentityUserLogins:EntityType:EntitySet'IdentityUserLogins'基于未定义键的'IdentityUserLogin'类型。   IdentityUserRoles:EntityType:EntitySet'IdentityUserRoles'基于未定义键的'IdentityUserRole'类型。   '

要提及的是,如果我删除此表或仅删除字段ApplicationUser User,那么就我没有错误,或者我的UserId在其他平板电脑上没有外键而言,一切正常

0 个答案:

没有答案