ASP Net Core Entity Framework 从不同表创建实体

ASP Net Core Entity Framework entity creation from different tables

我正在尝试使用 Entity Framework 为 ASP.NET 核心创建 OData 服务。

首先,我是 Entity Framework 的新手,但我已经阅读了很多与此主题相关的文章。 不幸的是,其中一些写得不好,而且大多数不是最新的或缺少一些关键信息。所以我要问你。

现状:

我正在尝试创建一个模型,它结合了数据源的两个数据表中的值。

假设我们有 class 订单和文章。 每个订单包含一堆文章。 对象可以通过存储在 Order 和 Article 中的 OrderID 属性 映射。

所以我们有两个列表,其中包含每个订单和订单合同中的每个文章行

当然,订单和商品包含更多属性,但在我的测试用例中,我只想获取 OrderID 和相关商品名称。

public class OrderList
{
    public int OrderID { get; set; }
    public List<string> Article { get; set; }
}

我想创建一个名为 OrderList 的新模型。 在那个模型中,我有 OrderID 和文章代码列表(字符串)

我正在从数据库获取数据并需要它们加入我的新对象 OrderList。

目前,我刚刚被创建实体关系卡住了。 你们有解决这个问题的好主意吗?

您想要的是通过导航属性实现的。当跟随naming conventions时,就像下面这样简单:

public class Order
{
    public int OrderId { get; set; } // primary key
    public List<Article> Articles { get; set; } // navigation property
}

public class Article
{
    public int ArticleId { get; set; } // primary key
    public string Name { get; set; }

    public int OrderId { get; set; } // foreign key
    public Order Order { get; set; } // navigation property
}


public MyDbContext : DbContext
{
    public DbSet<Order> Orders { get; set; }
    public DbSet<Article> Articles { get; set; }
}

var foo = ctx.Orders.Include(e => e.Articles).ToList();

您可以阅读更多相关信息 here