我目前正在开发ASP.Net 5 / ASP.Net MVC 6应用程序。我使用EntityFramework 7作为ORM框架,以及Code-first方法。 在我的模型中,我有以下内容:
AppUser
类,继承自IdentityUser<int>
。 IdentityUser
是通过Microsoft.AspNet.Identity.EntityFramework
包提供的,并允许通过从主键指定数据类型来继承所提供的类,当然,还可以向其中添加自定义字段。一切都正常(数据库架构,插入,...)Person
类,并添加一些特定于应用程序的字段和逻辑。基本上,我的想法是我的应用程序中的每个人都是潜在用户,但不是每个用户都需要成为一个人。对于我的所有模型对象,我实现了一个通用存储库方法,该方法基本上为每个模型类实现了通用CRUD操作,并允许用户覆盖特定域类的通用方法。
但是对于AppUser类,ASP.Net Identity框架附带了自己的存储库,它基本上允许用户添加用户,向用户添加角色,检查登录的单一性等等......
我的问题是:我如何一起使用这两个存储库,这样当我添加Person
时,它会通过Identity框架存储库创建一个AppUser
,然后存储我自定义的字段Person
在同一个数据库记录中?
请注意,AppUser上Person的继承已通过代码优先解析为单表继承:同一个表存储AppUser和Persons,并生成判别字段。
答案 0 :(得分:1)
您创建了一个自定义管理器类,它扩展了Identity框架提供的usermanger类。这个新的CustomUserManager类将具有UserManager类的所有功能,以及您要为添加Person实现的新功能