C# BLToolkit:如何使用LINQ获得主细节结果集?
以下是列表关联的示例用法,摘自: 在哪里 上面的代码抛出LinqException,并显示以下消息:C# BLToolkit:如何使用LINQ获得主细节结果集?,c#,.net,linq,linq-to-sql,bltoolkit,C#,.net,Linq,Linq To Sql,Bltoolkit,以下是列表关联的示例用法,摘自: 在哪里 上面的代码抛出LinqException,并显示以下消息: 找不到“System.Collections.Generic.List”1[[OrderDetail,TestProject,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null]]类型的转换器 使用普通的linq to sql提供程序,这将很好地工作。对于BLToolkit Linq提供程序,我不知道。虽然我没有使用BLToolkit,但您可以
找不到“System.Collections.Generic.List”1[[OrderDetail,TestProject,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null]]类型的转换器 使用普通的linq to sql提供程序,这将很好地工作。对于BLToolkit Linq提供程序,我不知道。虽然我没有使用BLToolkit,但您可以尝试使用您定义的类,而不是依赖匿名类型 也就是说,您可以定义一个名为
MyOrder
的类,该类具有属性String ProductName
和List OrderDetails
,然后将linq查询更改为类似以下内容:
from p in db.Product
select new MyOrder
{
OrderDetails = p.OrderDetails,
ProductName = p.ProductName
};
我不能保证这会奏效,但可能值得一试(除非有人发布更明确的消息)。谢谢你的回复。您能否建议普通LINQ to SQL提供程序将为此表达式生成什么SQL查询?您编写的查询在Linq2Sql中应该可以正常工作。对于BLToolkit,请查看:“此功能尚不受支持”非常感谢!这就是我想要的答案:还不支持。谢谢你的建议。不幸的是,您的代码引发了相同的错误。LINQ表达式解析器并不关心它是select子句中使用的普通类还是匿名编译器生成的类,在第一个示例中,它们都工作得很好。
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
};
from p in db.Product
select new MyOrder
{
OrderDetails = p.OrderDetails,
ProductName = p.ProductName
};