2011-09-13 5 views
-1

ActiveRecordを使用してビューをマッピングしています。つまり、主キーが必要です。私は1つも持っていないので、ROW_NUMBER()を使ってビューを定義し、システムを完成させます。しかし、私はそれを正しくマップする方法を知らないようです。私は取得しています:城のActiveRecordエラー(ビューあり):生成されたキーのNHibernate.PropertyNotFoundException

は、フィールドが見つかりませんでしたクラスのblah_blah " NHibernate.PropertyNotFoundExceptionに「stupidID」:フィールドを見つけられませんでした「stupidID」クラス「blah_blah」に

私のマッピングは次のようになります。ありません

public long? stupidID; 
    [PrimaryKey("StupidId", Access = PropertyAccess.NosetterLowercaseUnderscore)] 
    public long? StupidId 
    { 
     get { return stupidID; } 
    } 

誰かが私に欠けているものを見ることができますか?

+0

代わりに複合キーを作成してこの問題を回避しました。 –

+0

複合PKを使用すると**あなたに苦労することが保証されます**。代わりに、実際の問題を解決してください。 –

答えて

0

NosetterLowercaseUnderscoreは、接頭辞 '_'が使用され、小文字であることを意味するので、フィールドはstupidIDではなく_stupididとする必要があります。

また、PKはヌル可能型であってはなりません。 long?の代わりにlongを使用します。

+0

ええ、私はクラスを作るためにジェネレータを使用していましたが、常にそのアクセス修飾子を設定していました。しかし、エラーメッセージを見ると、アンダースコアのないフィールドを探していたことがわかります(したがって、問題) –

+0

?そこにいるべきではない、確かに、それは問題でもなかった。 –

+0

@Jeff:はい** **問題です、ドキュメントを参照してください:https://github.com/castleproject/Castle.ActiveRecord/blob/master/src/Castle.ActiveRecord/Attributes/PropertyAccess.cs#L184 –

関連する問題