有没有可能使用新的 Asp.net 身份与数据库第一和 EDMX? 或只有代码第一?
我是这么做的:
1)我制作了一个新的 MVC5项目,让新的 Identity 在我的数据库中创建了新的 User 和 Roles 表。
2)然后我打开我的数据库第一 EDMX 文件,并拖入新的标识用户表,因为我有其他表相关。
3)保存 EDMX 后,Database First POCO 生成器将自动创建 User 类。但是,UserManager 和 RoleManager 需要一个从新的 Identity 命名空间(Microsoft)继承的 User 类。AspNet.IUser) ,因此使用 POCO User 类不会起作用。
我想一个可能的解决方案是编辑我的 POCO 生成类,让我的 User 类从 IUser 继承?
还是 ASP.NET 标识只与代码优先设计兼容?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
更新: 根据 AndersAbel 下面的建议,这就是我所做的。有用,但我想知道有没有更好的解决办法。
1)我通过在自动生成的实体的同一命名空间中创建一个分部类来扩展我的实体 User 类。
namespace MVC5.DBFirst.Entity
{
public partial class AspNetUser : IdentityUser
{
}
}
2)我改变了我的 DataContext 从 IdentityDBContext 继承而不是 DBContext。请注意,每次更新 EDMX 并重新生成 DBContext 和 Entity 类时,都必须将其设置为。
public partial class MVC5Test_DBEntities : IdentityDbContext<AspNetUser> //DbContext
3)在自动生成的 User 实体类中,您必须将覆盖关键字添加到以下4个字段中,或者将这些字段注释掉,因为它们是从 IdentityUser 继承的(步骤1)。请注意,每次更新 EDMX 并重新生成 DBContext 和 Entity 类时,都必须将其设置为。
override public string Id { get; set; }
override public string UserName { get; set; }
override public string PasswordHash { get; set; }
override public string SecurityStamp { get; set; }