我使用这个示例项目(https://github.com/imranbaloch/ASPNETIdentityWithOnion)作为我的应用程序架构,在这个示例中,核心是从包括身份框架在内的基础设施中完全取消的.
在此示例中,作者使用适配器模式来分离核心标识类(IdentityUser,IdentityRole ...),并在Core层中提供类似它们的类.
现在这个示例项目中的问题是Domain模型(Product,Images)没有与模仿Identity模型的虚拟类(AppUser,ApplicationRole,AppliationUserRoles,...)链接.
然后我修改了代码以添加对AppUser的引用
public sealed class Image : BaseEntity
{
public Image()
{
Products = new HashSet<Product>();
}
public string Path { get; set; }
public AppUser AppUser { get; set; } // The Added Reference ...
public ICollection<Product> Products { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我将"AppUser"导航属性放在"Image"类中,则创建的数据库将具有除标识框架的默认FIVE表之外的四个新表.

我需要将这些表合并为默认表.怎么样 ?
编辑:
这是驻留在数据层中的身份模型(我无法从核心引用).
public class ApplicationIdentityUser :
IdentityUser<int, ApplicationIdentityUserLogin, ApplicationIdentityUserRole, ApplicationIdentityUserClaim>, IDomainUser {
public ApplicationIdentityUser()
: base() {
Images = new HashSet<Image>();
}
public string Name { get; set; …Run Code Online (Sandbox Code Playgroud) 我正在关注洋葱架构。并且我正在使用 ASP.NET Identity Framework。
这是我的项目结构:
1-Core
- Domain Classes //It contains my T4 template classes
-- AppUser //It is Identity User.
- Repository Interfaces
- Service Interfaces
2-Infrastructure
- Data //It contains my edmx file, I am using Db First approach.
- Dependency Injection
- Repository Interfaces Implementation
- Service Interfaces Implementation
3-WebApi
- Web Api Project
4-WebClient
- My AngularJs App
5-Test
- Test Project
Run Code Online (Sandbox Code Playgroud)
我已经复制了 ASP.NET Identity 表的脚本并在我的 SQL Server 上执行。它为我创建了身份表。
在我的Infrastructure.Data项目中,我创建了一个Edmx File …
.net asp.net onion-architecture asp.net-web-api asp.net-identity