2009-06-12 14 views
1

私はVB.NETを使って亜音速を使用していますが、古いときれいのレコードに問題があるようです。 ExecuteSingleまたはExecuteTypedListを使用してクエリを実行するたびに、手動でMarkCleanとMarkOldを実行する必要があります。保存すると、新しいレコードとして保存されます。亜音速VB.NETの問題

私はこの問題に直面していますか?私はSubSonic 2.2 btwを使用しています。

+0

この問題は、SubSonic githubサイト(http://github.com/subsonic/SubSonic-2.0/issues/issue/10)に掲載しました。 – sparks

答えて

1

ExecuteSingleまたはExecuteTypedListを使用すると、これらのプロパティを持っていないクラスで作業を行っている可能性があります.POCOにはEntityオブジェクトや他のORMオブジェクトではないことが意図されています。彼らはSetLoadState()および/またはMarkCleanを()を呼び出すので、あなたが期待するよう

ExecuteAsCollectionと.LOAD方法のすべてが動作します。私は純粋に(スマート)DAL(CRUDのみ)と私自身のエンティティ層は、新しい/汚れのようなものの世話をするよう亜音速使用しているため

は個人的に、私はこの問題に直面してはいけません。

1

私は...亜音速のソースコードをチェックして、私はVBクラスジェネレータがIActiveRecordを実装していないことがわかりました。私はVB.Netが継承の "再実装"をサポートしていないと思われるためだと思います...

私はデバッグすると、Utility.IsSubSonicTypeがfalseを返しますこれIReadOnlyRecordとしてActiveRecordのクラスに戻りますが、IActiveRecordとIRecordBaseためIsSubSonicTypeチェック)とはSetLoadStateとMarkCleanを呼び出すことはありません。

これはバグか意図的なものか分かりません。これを解決する方法はありますか?

0

はい、私は同じ問題がありました。プロパティを設定して保存する前にMarkCleanとMarkOldで問題を修正しました。 see this