我正在尝试将DDD与EFCore结合使用,并且努力寻找一种方法来将代表同一实体的来自不同上下文的2个POCO映射到同一张表。
我在UserContext中有一个User类,其中包含为我的应用程序创建新用户所需的所有属性。而且我在OrderContext中有一个User类,在该类中我仅具有Id和Email属性,因为这是OrderContext需要的全部工作。
所以我有这样的事情:
modelBuilder.Entity<Domain.UserContext.User>(u =>
{
u.ToTable("User").HasKey(e => e.Id);
u.OwnsOne(e => e.Name);
u.OwnsOne(b => b.HomeAddress);
});
modelBuilder.Entity<Domain.OrderContext.User>(u =>
{
u.ToTable("User").HasKey(e => e.Id);
});
modelBuilder.Entity<Domain.OrderContext.Order>(p =>
{
p.ToTable("Order").HasKey(b => b.Id);
p.HasOne(x => x.User); // this is OrderContext.User
});
Run Code Online (Sandbox Code Playgroud)
我似乎找不到一种将两个User类映射到同一张表的方法。有办法吗?
Edit1:两个上下文都是有界上下文DDD的概念,而不是DbContext。我只需要将两个类映射为同一张表。Add-Migration命令返回一条消息,告诉我它无法将“ OrderContext.User”映射到表“ User”,因为它已经映射到“ UserContext.User”。