我正在尝试将新的 asp.net 身份提供程序与我的模型域的抽象层一起使用,它具有实体框架的实现,所以我想在我的数据访问层中使用带有实体框架的开箱即用身份版本.
我怎样才能转换
UserStore<IdentityUser>
到它的基本接口
IUserStore<IUser>
一旦 UserStore 是 IUserStore 的实现,我可以通过以下方式获得演员表:
UserStore<IdentityUser> as IUserStore<IdentityUser>
但我想避免 EntityFramework 引用和依赖中的 IdentityUser,以保持我的域层松散耦合。所以,IdentityUser 也是 IUser 的一个实现,我可以转换它:
IdentityUser as IUser
两种情况都有效,然后我想做一些这样的事情(实际上并不直接):
UserStore<IdentityUser> as IUserStore<IUser>
那么,我该如何实现呢?
如果我们看一下这张图 http://i3.asp.net/media/4459023/1.png,我们会看到我想要实现的目标。在我的域层中仅引用 Microsoft.AspNet.Identity.Core,但通过返回域层的核心接口在 DataAccess 层使用 Microsoft.AspNet.Identity.EntityFramework 实现。