Fluent NHIbernate を使用してこの投稿をフォローしようとしています: http://blogs.planetcloud.co.uk/mygreatdiscovery/post/Localizing-entities-with-NHibernate.aspx
私のテストでは、次のエラーが生成されます。
----> NHibernate.MappingException : An association from the table TranslatedText refers to an unmapped class: .Domain.Localisation.ILocalizedEntity
NH にインターフェースを尊重させる方法はありますか?
.IncludeBase<ILocalizedEntity>()
私の自動モデルに追加しても何も起こりませんでした...(予想どおり、抽象的な権利ではなくインターフェースですか?)
マッピング: (質問)
mapping.HasMany(m => m.TranslatedTexts)
.AsSet()
.Inverse().Cascade.SaveUpdate()
.KeyColumn("EntityId")
.ForeignKeyConstraintName("none")
.Where("EntityClass = 'Domain.Question'");
TranslatedText (あり)public virtual ILocalizedEntity Entity { get; set; }
mapping.ReferencesAny(tt => tt.Entity)
.IdentityType<Guid>()
.EntityIdentifierColumn("EntityId")
.EntityTypeColumn("EntityType");
インターフェース:
public interface ILocalizedEntity
{
ICollection<TranslatedText> TranslatedTexts { get; set; }
}
FNH テスト スイートでも同じことがわかりました。私は AutoMapping を使用しているという事実と関係があると感じていますが、まだわかりません...
編集 が確認されました - 上記と同じマッピングで、自動マッピングの代わりに標準の ClassMap を使用すると、期待どおりに動作します。