2011-02-01 8 views
4

宿泊施設のエンティティには、NULL可能な2つの列、CollectionTypeおよびAccommodationUnitTypeがあります。データベース内の列がNULLの場合、「Count = nnを持つこのSqlParameterCollectionの無効なインデックスnn」の原因は何ですか?

しかし、私は彼らがnullではなくゼロに設定されていることに気づいたので、NHibernateはid 0のエンティティを見つけようとしました。これは不要なDBコールがたくさんあったため、関連するデータをNULLに更新しましたデータベースで、突然、私は大きな脂肪のエラーが表示されます。ここでは

"Invalid index 24 for this SqlParameterCollection with Count=24"

は、私が使用しているマッピングのオーバーライドです:

public void Override(AutoMapping<Core.Entities.Itinerary.Accommodation.Accommodation> mapping) 
    { 
     ... 
     mapping.References(x => x.CollectionType).Nullable();//.Not.LazyLoad(); 
     mapping.References(x => x.AccommodationUnitType).Nullable();//.Not.LazyLoad(); 
     Cache.Is(c => c.ReadWrite()); 
    } 

Googleは何も持っていないように見えます回答の多くを持っています私の問題と関係があります。

アイデア?

編集 情報についての特性はとてもNULL可能です、エンティティです:

public virtual AccommodationUnitType AccommodationUnitType { get; set; } 
public virtual AccommodationCollectionType CollectionType { get; set; } 
+1

結果のXMLマッピングをポストします。 –

+0

申し訳ありませんが、このコメントは通知されたばかりです。ありがとうございました。私は、私も*実現していないオブジェクトにマップされたIDの1つを持っていたことに気づくのを助けました。 –

答えて

5

は "CollectionTypeは" と "AccommodationUnitType" "INT" として指定された両方ありますか?

nullを処理する場合は、両方を「int?」として指定する必要があります。

これが問題であるかどうかはわかりませんが、私にとっては似たようなものが修正されています。

public virtual int? CollectionType {get;set;} 
public virtual int? AccommodationUnitType {get;set;} 
+0

こんにちは、実際には、それぞれタイプAccommodationCollectionTypeと宿泊施設タイプのエンティティです。しかし、ありがとう。 –

+0

実際には、私はidの1つがマップされていることを発見しました。それはnullableではありませんでした。ありがとう! –

関連する問題