1

誰かがC#3.5でActiveRecordイントロサンプルを試しましたか?どういうわけか、サンプルが完全に間違っているか、単に古くなっているように感じます。XML構成はまったく間違っています。

<add key="connection.connection_string" value="xxx" />

する必要があります:

<add key="hibernate.connection.connection_string" value="xxx" />

(nhibernateの構成構文を正しく理解している場合..)

私は何が間違っているのだろうと思っています。ユーザーモデルでCount()を呼び出すと、「ユーザーに対してExecuteQueryを実行できませんでした」という例外が発生します。

これが何であるかわかりません。チュートリアルのソースは、ページのソース(特にXML構成)とは大きく異なり、ほとんどの場合(ジェネリックなどは含まれていません)、構文が異なるVS2003サンプルです。

助言がありますか?ActiveRecordは素晴らしく見えます。

4

3 に答える 3

1

(これはコメント投稿には長すぎました)

[@Tigraine]私の以前の回答に対するあなたのコメントから、エラーは構成ではなく、エンティティの1つにあるようです。「休止状態」を削除すると、実際のエラーが発生するように構成が修正されました。これは、エンティティ「Post」がActiveRecordがマッピングを作成するために適切に関連付けられていないように見えます。

それが与えるエラーをさらに下に向けると、「投稿」が失敗したことについての詳細が含まれている可能性があります。

一般的なものは次のとおりです。

  • クラスには[ActiveRecord]属性がありません。
  • 属性を持つプロパティはありません[PrimaryKey]
  • 「Post」(または「PluralizeTableNamestrue」の場合は「Posts」)と呼ばれる一致するテーブルはありません。
  • 属性付きプロパティに一致する列はありません。
  • あなたの属性付きプロパティとパブリックメソッドはそうではありませんvirtual(これはいつも私を殺します)。
于 2008-09-25T13:40:52.287 に答える
1

キーの「休止状態」部分は、NHibernate バージョン 2.0 で削除されました。このバージョンは、NHibernate 2.0 以降に適しています。

<add key="connection.connection_string" value="xxx" />

編集: クイックスタートには、Castle と NHibernate のバイナリが付属していないようです。どこかからバイナリをダウンロードしている必要があります。NHibernate.dll ファイルのバージョン番号をお知らせいただけると助かります。

紛らわしいことに、クイックスタートの少なくとも一部は NHibernate (NH) 2.0 に対応するように更新されていますが、最新の「適切な」Castle リリースはまだ 1.0 RC3 (現在ではほぼ 1 年前) であり、NH 2.0 は含まれていません。

2 つの方法で行くことができます。Castle RC3 を引き続き使用できますが、この場合、構成エントリに 'hibernate' プレフィックスを追加する必要があります。または、トランクから Castle のビルドをダウンロードすることもできます。これは NH 2.0 に対して実行されます。後者のアプローチの問題は、NH 2.0 で導入されたその他の重大な変更の一部がクイック スタートで修正されない可能性があることです。

于 2008-09-25T13:29:56.417 に答える
0

hibernate.すべての構成エントリの " " 部分を削除します。あなたの最初の例は正しいものです。

于 2008-09-25T13:25:44.290 に答える