在 MVC6 标识框架 ASP.Net 实现继承
本文关键字:Net 实现 继承 ASP 框架 MVC6 标识 | 更新日期: 2023-09-27 18:37:09
我目前正在开发 ASP.Net 5/ASP.Net MVC 6应用程序。我正在使用EntityFramework 7作为ORM框架和代码优先方法。在我的模型中,我有以下内容:
- 一个
AppUser
类,它继承自IdentityUser<int>
。IdentityUser
是通过Microsoft.AspNet.Identity.EntityFramework
包提供的,并允许从提供的类继承,通过从主键指定数据类型,当然,还可以向其添加自定义字段。一切正常(数据库架构、插入等) - 一个
Person
类,它继承自上一个类,并添加一些特定于应用的字段和逻辑。基本上,我的想法是,我的应用程序中的每个人都是潜在用户,但并非每个用户都需要成为个人。
对于我的所有模型对象,我实现了通用存储库方法,该方法基本上为每个模型类实现了通用 CRUD 操作,并允许重写特定域类的通用方法。
但是对于 AppUser 类,ASP.Net 身份框架带有自己的存储库,它基本上允许人们添加用户、向用户添加角色、检查登录的单一性等......
我的问题是:我怎样才能同时使用这两个存储库,以便在我添加Person
时,它通过身份框架存储库创建一个AppUser
,然后将我的自定义Person
的字段存储在同一个数据库记录中?
请注意,AppUser 上的 Person 继承已通过代码优先作为单表继承进行解析:同一个表存储 AppUser 和 Persons,并生成了一个判别字段。
创建一个自定义管理器类,该类扩展了标识框架提供的用户管理器类。这个新的自定义用户管理器类将具有用户管理器类的所有功能,以及您想要实现的用于添加人员的新函数