1

作成中のアプリケーションで SubSonic (2.2) を使用したいと考えています。その単純さが好きで、必要と予測できるあらゆるタイプのクエリを処理できるからです。同時に、アプリケーションの上位レイヤーを亜音速タイプから切り離したいと考えています。Plain Old C# オブジェクトだけを返し、POCO を渡して保存したいと考えています。

しかし、ここに問題があります。POCO に、FK 関係に基づいて、子コレクションと親オブジェクトの遅延読み込みプロパティを持たせたいのです。Subsonic SqlQuery オブジェクトを POCO のプライベート メンバーに何らかの形で配置し、遅延ロードされたプロパティのゲッターで内部的に使用する必要があると考えています。

具体的に SubSonic でこれを実装する方法についてのアイデアはありますか? 誰もこれを以前にやったことがありますか?

SubSonic の次のメジャー リリースでこれがすぐに使えるようになることはわかっていますが、それは少なくとも数か月先のようです。

4

4 に答える 4

2

「ほとんど」poco である SubSonic の RepositoryRecord を使用します。次に、プロパティが選択されたときに他のクラスをロードするクラスのパーシャルを作成します。

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="リポジトリレコード"

残念ながら、これが遅延読み込みをどのように処理するのかわかりません。詳細については、 Rob Conery の投稿を参照してください。

于 2009-01-22T03:38:50.800 に答える
0

あなたが望むものは、バージョン 2.x にはありません。テンプレートを編集することで、ほとんどの方法を実現できる可能性があります (私のブログには、遅延ロードされたプロパティの例があります)。もう 1 つのオプションは、poco を構築してからクラスを構築し、SubSonic で生成されたクラスとクエリからモデルにマップすることです。

于 2009-02-04T02:55:13.160 に答える