2

Linq to SQL を使用する場合、DataLoadOptions を使用して、読み込む「子」オブジェクトを指定できます。BLToolkit で同様の手法はありますか?

次のように、BLT を使用して直接 BO を作成できるのは素晴らしいことです。

from p in db.Parent
select new Parent
{
  ParentId = p.ParentId,
  Child = p.Child
};

ただし、この方法では、子オブジェクト全体が作成されている間に、親のすべてのフィールド (つまり、ParentId、ParentName、ParentDob など) を指定する必要があります。

ありがとう。

4

1 に答える 1

2

LoadWithとまったく同じではありませんが、私の意見では、以下のアプローチはさらに優れています/よりクリーンです(魔法が少ない)。BO で、次のような静的関数を作成します。

public static Parent Build(Parent parent, Child child)
{
  parent.Child = child;
  return parent; 
}

LINQ クエリを次のように記述する必要があります。

var query = from p in db.Parent
            select Parent.Build(p, p.Child);

そのため、「select p」または「select new Parent()」ではなく、静的関数に「p」を返させ、返す前に Child オブジェクトを「parent.Child」に割り当てます。アソシエーションが適切に設定されている限り (BLToolkit.Mapping.Association)、p.Child は BLT に Child テーブルにも参加するように指示します。iepChild.Friends.etc のように、さらに先に進むこともできます。

于 2012-01-28T04:24:33.000 に答える