1

我想在我正在构建的应用程序中使用 SubSonic (2.2),因为我喜欢它的简单性,并且它可以处理我可以预见需要的任何类型的查询。同时,我想让我的应用程序的上层与 Subsonic 类型分离。我想只返回普通的旧 C# 对象,并传入要保存的 POCO。

但这里有个问题:我希望我的 POCO 根据 FK 关系为子集合和父对象延迟加载属性。我想我需要以某种方式将 Subsonic SqlQuery 对象放在我的 POCO 的私有成员中,并在 getter 内部使用它来获取延迟加载的属性。

关于如何使用 SubSonic 专门实现这一点的任何想法?以前有人做过吗?

我确实意识到 SubSonic 的下一个主要版本将立即执行此操作,但这看起来至少需要几个月的时间。

4

4 回答 4

2

我在 SubSonic 中使用 RepositoryRecord,它“主要是”poco。然后,我为那些在选择属性时加载另一个类的类制作部分内容。

Partial Public Class Book

Private _Author as Database.Author 
Property Author() as Database.Author
  Get
     If _Author is nothing then
       ' Load the author class here.
     End if
     return _Author
  End get
  Set
     ....
  End Set
End Property
End Class
于 2009-04-04T10:26:59.000 回答
1

您可以使用以下属性:

tableBaseClass="RepositoryRecord"

恐怕我不知道这如何处理延迟加载。您可以查看Rob Conery 的帖子了解更多详细信息。

于 2009-01-22T03:38:50.800 回答
0

你想要的不在版本 2.x 中。您可以通过编辑模板来获得大部分方法(我的博客上有延迟加载属性的示例)。另一种选择是构建您的 pocos,然后构建类以从 SubSonic 生成的类和查询映射到您的模型。

于 2009-02-04T02:55:13.160 回答
0

一直想不出一个好方法来做到这一点。Subsonic 3 看起来很不错,可以解决问题,但与此同时,我们只使用了 NHibernate

于 2009-03-03T22:18:23.977 回答