【问题标题】:Entity Framework includes not working实体框架包括不工作
【发布时间】:2013-02-15 09:41:46
【问题描述】:

我的软件有一些问题。在我的实体设计器中,我有以下类:

供应商
该类包含有关我的供应商的信息以及与我的品牌类的一对多关系。每个供应商可以拥有无​​限数量的品牌。

品牌
每个品牌都属于一个供应商,并且与产品类具有一对多的关系。

产品
每个产品都属于一个品牌,并且与 StockInformation 是一对多的关系

库存信息
此类包含有关产品是否有库存的信息。

在我的 WPF 窗口中,我有三个 DataGrid,所有数据都绑定到我的三个类。

对于 Products-datagrid,我使用以下代码检索所有产品:

public List<Supplier> GetSuppliers()
{
    return Container.Suppliers.Include("Brands").Include("Brands.Products").Include("Brands.Products.StockInformation").OrderBy(s => s.Name).ToList();
}

另外,我有Container.Configuration.LazyLoadingEnabled = false;

但是,问题是我的数据网格告诉我只有每个品牌的第一个产品有库存:
(我知道这是丹麦语,所以这里是翻译:
Navn = 每个产品的名称,
Listepris = 忽略这个,
Antal på lager = 目前有多少件库存,
品牌 = 品牌名称)

我知道这是不正确的,正如我的数据库所说的那样。我做错了什么?

【问题讨论】:

  • 你确定这是调用链中对Container.Suppliers的第一个引用吗?
  • 是的。这是唯一的参考。
  • 试试这个Container.Suppliers.Include("Brands.Products.StockInformation").OrderBy(s =&gt; s.Name).ToList();
  • 这就是我开始的。试图通过将其更改为问题中的代码来解决问题。两者都不起作用。
  • @Rachel 是的,我有。只有每个 Brand 的第一个 Product 对象有超过 0 个 StockInformation 对象。

标签: c# wpf linq entity-framework datagrid


【解决方案1】:

因为网格中的每一行都代表一个Product,所以我会从那里开始查询:

Container.Products.Include("Brand.Supplier").Include("StockInformation")
    .OrderB‌​y(s => s.Name).ToList()

当然会返回List&lt;Product&gt;

显然,看到您的评论,它也解决了问题:)。

【讨论】:

  • 我仍然觉得这很奇怪。我敢打赌,问题出在 MySQL 连接器上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
  • 1970-01-01
  • 2017-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多