BLToolkit:如何使用 LINQ 获取主从结果集?

发布于 2024-10-15 21:39:42 字数 805 浏览 1 评论 0原文

以下是列表关联的示例用法,取自 BLToolkit 文档< /a>:

from p in db.Product
select new
{
  p.OrderDetails.Count,
  p.ProductName
};

是否

class Product
{
  [PrimaryKey, Identity]
  public int ProductID;

  public string ProductName;

  [Association(ThisKey="ProductID",  OtherKey="ProductID")]
  public List<OrderDetail> OrderDetails;
}

可以获取包含每个产品的订单详细信息的产品列表,如下所示:

from p in db.Product
select new
{
  Details = p.OrderDetails,
  p.ProductName
};

上面的代码抛出 LinqException 并显示以下消息:

找不到 'System.Collections.Generic.List`1[[OrderDetail] 的转换器,TestProject,版本=1.0.0.0,文化=中性,PublicKeyToken=null]]'类型。

Here is an example usage of list associations taken from BLToolkit documentation:

from p in db.Product
select new
{
  p.OrderDetails.Count,
  p.ProductName
};

where

class Product
{
  [PrimaryKey, Identity]
  public int ProductID;

  public string ProductName;

  [Association(ThisKey="ProductID",  OtherKey="ProductID")]
  public List<OrderDetail> OrderDetails;
}

Is it possible to get list of products with order details for each product like this:

from p in db.Product
select new
{
  Details = p.OrderDetails,
  p.ProductName
};

The code above throws LinqException with the following message:

Cannot find converter for the 'System.Collections.Generic.List`1[[OrderDetail, TestProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' type.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扶醉桌前 2024-10-22 21:39:42

虽然我没有使用过 BLToolkit,但您可能会尝试使用您定义的类,而不是依赖于匿名类型。

也就是说,您可以定义一个名为 MyOrder 的类,该类具有 String ProductNameList属性。 OrderDetails,然后将 linq 查询更改为以下内容:

from p in db.Product
select new MyOrder
{
  OrderDetails = p.OrderDetails,
  ProductName = p.ProductName
};

我不能保证这会起作用,但可能值得一试(除非有人发布更明确的内容)。

While I haven't used the BLToolkit, you might try to use a class you define rather than relying on an anonymous type.

That is, you could define a class called MyOrder that has properties String ProductName and List<OrderDetail> OrderDetails, and then change your linq query to something like:

from p in db.Product
select new MyOrder
{
  OrderDetails = p.OrderDetails,
  ProductName = p.ProductName
};

I can't guarantee that this would work, but it's probably worth a shot (unless someone posts something more definitive).

不乱于心 2024-10-22 21:39:42

使用普通的 linq to sql 提供程序就可以正常工作。对于 BLToolkit Linq 提供程序,我不知道。

Using the normal linq to sql provider this would work fine. With the BLToolkit Linq provider I don't know.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文