私はFluentからLoquaciousに変換しています。インターセプタがすべてのフィールドを取得していない問題が発生しました。私はのOnSave機能Nhibernateインターセプタが基本クラスのプロパティを取得しない
public override Boolean OnSave(Object entity, Object id, Object[] state,
String[] propertyNames, IType[] types)
を見て、propertyNamesを見てみる場合はアイテムのみ明示的例では(マッピングファイルにマッピングされたアイテムがある中で、このだけだろうID、[スタート]、および終わり)。
私の場合、私は全くマッピングされていない基本クラスを持っています。代わりに、それはインターセプタによって記入されるプロパティを含んでいます。これはFluent Nhibernateで使用されていましたが、Nhibernate 3.3に移行したので、もう動作しなくなりました。
私のクラス/マッピングがこの
public class BaseAuditEntity
{
public virtual int ModifiedByUserID { get; set; }
public virtual DateTime LastModifiedTime { get; set; }
}
public class Foo : BaseAuditEntity
{
public virtual int ID { get; protected internal set; }
public virtual DateTime Start { get; protected internal set; }
public virtual DateTime End { get; protected internal set; }
}
public class FooMap: ClassMapping<Foo>
{
Id(x => x.ID, m => m.column("fooID"));
Property(x => x.Start, m => m.column("start"));
Property(x => x.End, m => m.column("end"));
}
のようなもの、この作業を取得する方法の任意のアイデアを見て?私はこのすべてのクラスをマップする必要はありません。BaseAuditEntityをマップする必要はないと思いましたが、少なくともFluentでは必要ではありませんでした。
あなたはFNHで自動マッピングを使用しましたか? – Firo