相关疑难解决方法(0)

Microsoft.AspNet.Identity.EntityFramework.IdentityUser的外键?

我在VS 2013,刚刚创建了一个MVC应用程序.

我正在创建一个对象,我打算在结果数据库中有一个AspNetUsers表的外键.该项目确实有一个ApplicationUser(派生自IdentityUser),看起来像是与AspNetUsers表的属性列匹配.

我们如何正确地为此声明外键?

public MyObject
{
   public string UserId { get; set; }

   [ForeignKey("UserId")]
   public ApplicationUser User { get; set;}

   // other properties
}
Run Code Online (Sandbox Code Playgroud)

现在,我修改ApplicationUser以获得MyObjects的集合:

public ApplicationUser : IdentityUser
{
     public virtual ICollection<MyObject> MyObjects { get; set; }    
}
Run Code Online (Sandbox Code Playgroud)

这似乎是如何在EF Code First中进行一对多操作.但是,当我更新数据库时,我收到的错误表明身份成员(IdentityUserLogin,IdentityUserRole等)没有定义键.也许这些课程不打算参加EF Code First Migrations?

我可以"回到"并通过SQL语句添加外键,但如果我想再次从Code First更新,我可能会收到错误(数据库目前不匹配旧的迁移或类似的东西).

我们如何正确地使用外键参考这些会员表?

我还尝试使用AspNetUsers表的匹配属性创建一个AspNetUser类.我没有在Client类上使用"public ApplicationUser",而是声明了"public AspNetUser".这样做会导致迁移失败 - "未应用自动迁移,因为它会导致数据丢失".

那么该怎么办?

c# entity-framework poco ef-code-first ef-migrations

8
推荐指数
2
解决办法
1万
查看次数