以下是从BLToolkit documentation获取的列表关联的示例用法:
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,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]'类型的转换器。
答案 0 :(得分:1)
虽然我没有使用BLToolkit,但您可能会尝试使用您定义的类而不是依赖匿名类型。
也就是说,您可以定义一个名为MyOrder
的类,其中包含属性String ProductName
和List<OrderDetail> OrderDetails
,然后将您的linq查询更改为:
from p in db.Product
select new MyOrder
{
OrderDetails = p.OrderDetails,
ProductName = p.ProductName
};
我不能保证这会起作用,但它可能值得一试(除非有人发布更明确的内容)。
答案 1 :(得分:0)
使用普通的linq到sql提供程序,这样可以正常工作。使用BLToolkit Linq提供程序,我不知道。