2009-04-29 16 views
4

Fluent NHibernateでは、References()は 'ReadOnly()'メソッドをサポートしていないオブジェクトを返します。私はマッピングのこの種の(つまり、更新が呼ばアイテムに伝播されていないもの)を作成しようとしていますFluent NHibernate References()マッピングでReadOnlyを設定できないのはなぜですか?

:ノーマルオン

<many-to-one update="false" insert="false" 
name="DestinationSheet" column="DestinationSheetNumber" /> 

を(マップ())のマッピング、これら2つの属性が可能ReadOnly()で設定します。

私はこのような何かやっているしたいと思います:私は手動での事実のReadOnlyという更新を追加し、をsetAttributesを使用して属性を挿入()、およびそれが正常に動作しますが、私は心配することができます

References(x => x.DestinationSheet). 
     ColumnName("DestinationSheetNumber").ReadOnly(); 

を()がReferences()に存在しないということは、私がこれをやろうとしてはならないという手がかりです。

ReadOnly()がこのコンテキストで使用できない理由を知っている人はいますか?

答えて

5

まだ実装されていません。時間がたつにつれてNHibernateのすべての機能をサポートするようになりますが、それまではSetAttributeメソッドを使用して続行することができます。

脇に、私たちはパッチを受け取ります!ジェームズ・グレゴリーが提供する解答の

+0

これについては既に公開されている問題があります:http://code.google.com/p/fluent-nhibernate/issues/detail?id=203 –

+0

ありがとうございます - 私はパッチを書くつもりでしたが、私はそれに殴られた... –

+0

パッチを適用する方法がわからない人には、どのようにパッチを適用しますか? –

0

参照はmany-to-oneマッピングを作成し、according to the documentation、読み取り専用はこのマッピングではサポートされていません。更新と挿入をfalseに設定するあなたのアプローチは、私にはぴったりです。 AFAIK、Fluent NHibernateプロジェクトはNHibernateのすべてのマッピング機能をサポートする予定ですが、それまではSetAttributesを使用する必要があります。

+0

おかげで - 流暢NHですでに読み取り専用(例えば地図())を実装しないオブジェクトに対して、それは、インサートを設定することで、そう単にないと削除します属性 - あなたが引用した文書にあります。私はこれがFluentからの省略であると考え始めています。 –

+0

そして、私のマッピングXMLがオリジナルの投稿にはならないことが分かりました。 –

0

実装は、このために

References(x => x.Store).TheColumnNameIs("StoreId").SetAttribute("update","false"); 
関連する問題