小编R.S*_*lva的帖子

EFCore将2个实体映射到同一张表

我正在尝试将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”。

entity-framework-core

7
推荐指数
3
解决办法
4588
查看次数

标签 统计

entity-framework-core ×1