私はこれらのクラスを持っています:
class A
{
public virtual Guid Id { get;set; }
public virtual B Data { get; set; }
}
class B
{
public IList<byte[]> InnerData1 { get; set; } // (1)
public IList<C> InnerData2 { get; set; } // (2)
}
class C
{
public int Value1 { get; set; }
public int? Value2 { get; set; }
}
クラス A の次のマッピング:
Id(x => x.Id).GeneratedBy.Guid();
Component(x => x.Data,
m =>
{
m.HasMany(x => x.InnerData1).Element("InnerData1").Not.LazyLoad(); // (1)
m.HasMany(x => x.InnerData2).Element("InnerData2").Not.LazyLoad(); // (2)
});
設定(1)は正常に機能し、自動的にテーブルを作成して適切に参照するため、例外をスローする(2)に問題があります。
Could not determine type for: (...), for columns: NHibernate.Mapping.Column(InnerData1)
なぜ問題なくすべてを作成しIList<byte[]>
、問題があるのwith IList<C>
ですか? C に別のマッピングを設定する必要がありますか? 他にもっと簡単な方法はありませんか?Cのモデルに追加のID列を追加したくない.