Bltoolkit:LINQを使用してマスターデテール結果セットを取得する方法は?

StackOverflow https://stackoverflow.com/questions/4872546

質問

以下は、から取得したリストアソシエーションの使用例です 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 ProductNameList<OrderDetail> OrderDetails, 、そして、linqクエリを次のようなものに変更します。

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

これが機能することを保証することはできませんが、おそらくショットの価値があります(誰かがより決定的なものを投稿しない限り)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top