Bltoolkit:LINQを使用してマスターデテール結果セットを取得する方法は?
-
28-10-2019 - |
質問
以下は、から取得したリストアソシエーションの使用例です bltoolkitドキュメント:
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]]'タイプのコンバーターを見つけることができません。
解決
通常のLINQからSQLプロバイダーを使用すると、これは正常に機能します。 bltoolkit linqプロバイダーではわかりません。
他のヒント
私はBltoolkitを使用していませんが、匿名のタイプに頼るのではなく、定義するクラスを使用しようとするかもしれません。
つまり、呼ばれるクラスを定義できます MyOrder
プロパティがあります String ProductName
と List<OrderDetail> OrderDetails
, 、そして、linqクエリを次のようなものに変更します。
from p in db.Product
select new MyOrder
{
OrderDetails = p.OrderDetails,
ProductName = p.ProductName
};
これが機能することを保証することはできませんが、おそらくショットの価値があります(誰かがより決定的なものを投稿しない限り)。
所属していません StackOverflow