0

以下は、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]]」タイプのコンバーターが見つかりません。

4

2 に答える 2

1

私はBLToolkitを使用していませんが、匿名型に依存するのではなく、定義したクラスを使用しようとするかもしれません。

つまり、MyOrderプロパティString ProductNameList<OrderDetail> OrderDetails、を持つというクラスを定義してから、linqクエリを次のように変更できます。

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

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

于 2011-02-02T10:18:42.480 に答える
0

通常の linq to sql プロバイダーを使用すると、これは正常に機能します。BLToolkit Linq プロバイダーではわかりません。

于 2011-02-02T09:44:23.747 に答える