BLToolkit等效于L2S中的LoadWith



使用Linq to SQL时,可以使用DataLoadOptions指定要加载的"子"对象。BLToolkit是否有类似的技术?

有了BLT,我可以直接创建BO,这很好,比如:

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

不管怎样,在创建整个Child对象时,我都需要指定Parent中的每个字段(即ParentId、ParentName、ParentDob等)

谢谢。

不完全像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);

因此,我们让静态函数返回"p",而不是"select p"或"select new Parent()",而是在返回之前将Child对象分配给"Parent.Child"。只要你的关联设置正确(BLToolkit.MMapping.Association)p.Child也会告诉BLT加入Child表。你可以更进一步,例如p.Child.Friends.etc.

相关内容

  • 没有找到相关文章

最新更新