首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >EF数据库ASP.NET Identity First MVC5

EF数据库ASP.NET Identity First MVC5
EN

Stack Overflow用户
提问于 2013-11-13 05:13:27
回答 5查看 58.5K关注 0票数 88

是否可以将新的Asp.net标识与数据库优先和EDMX一起使用?还是只使用代码优先?

下面是我所做的:

1)我创建了一个新的MVC5项目,并让新的身份在我的数据库中创建新的用户和角色表。

2)然后,我打开Database First EDMX文件并拖入新的Identity Users表,因为我还有其他相关的表。

3)保存EDMX后,Database First POCO生成器将自动创建用户类。但是,UserManager和RoleManager需要一个从新的标识名称空间(Microsoft.AspNet.Identity.IUser)继承的User类,因此使用POCO User类将不起作用。

我想一个可能的解决方案是编辑我的POCO Generation类,让我的User类从IUser继承?

或者ASP.NET Identity只与Code First Design兼容?

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

更新:遵循Anders Abel下面的建议,这就是我所做的。它是有效的,但我想知道是否有更优雅的解决方案。

1)我通过在与自动生成的实体相同的名称空间中创建一个分部类来扩展我的实体用户类。

namespace MVC5.DBFirst.Entity
{
    public partial class AspNetUser : IdentityUser
    {
    }
}

2)我将DataContext改为从IdentityDBContext继承,而不是从DBContext继承。请注意,每次更新EDMX并重新生成DBContext和实体类时,都必须将其设置回原处。

 public partial class MVC5Test_DBEntities : IdentityDbContext<AspNetUser>  //DbContext

3)在自动生成的用户实体类中,必须将override关键字添加到以下4个字段或注释掉这些字段,因为它们是从IdentityUser继承的(步骤1)。请注意,每次更新EDMX并重新生成DBContext和实体类时,都必须将其设置回原处。

    override public string Id { get; set; }
    override public string UserName { get; set; }
    override public string PasswordHash { get; set; }
    override public string SecurityStamp { get; set; }
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19940014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档