私はSharp-Architectureフレームワークを使用しており、次のようなエンティティがあります。
public class BaanAlternateItemKey : ValueObject
{
public virtual string ItemId { get; protected set; }
public virtual string AlternateItemId { get; protected set; }
}
public class BaanAlternateItem : EntityWithTypedId<BaanAlternateItemKey>, IAlternateItem
{
#region IAlternateItem Members
public virtual IItem Item { get; protected set; }
public virtual int Priority { get; protected set; }
public virtual DateTime ExpirationDate { get; protected set; }
#endregion
}
次のような自動マッピングオーバーライドがあります。
public class BaanAlternateItemAutoMappingOverride : IAutoMappingOverride<BaanAlternateItem>
{
public void Override(AutoMapping<BaanAlternateItem> mapping)
{
mapping.ReadOnly();
mapping.Table("VIEW_BAAN_ALTERNATE_ITEMS");
mapping.CompositeId<BaanAlternateItemKey>(x => x.Id)
.KeyProperty(x => x.ItemId, "ITEM_ID")
.KeyProperty(x => x.AlternateItemId, "ALT_ITEM_ID");
mapping.References<BaanItem>(x => x.Item, "ALT_ITEM_ID");
}
}
この例外が発生します:
----> NHibernate.MappingException:タイプを判別できませんでした:iPFS.Core.Baan.BaanAlternateItemKey、iPFS.Core、Version = 0.0.4154.21888、Culture = neutral、PublicKeyToken = null、列の場合:NHibernate.Mapping.Column( Id)
何が間違っているのかわかりません。助言がありますか?
更新:流暢なマッピングを使用してこれをマッピングすると、正常に機能します:
public class BaanAlternateItemMap : ClassMap<BaanAlternateItem>
{
public BaanAlternateItemMap()
{
ReadOnly();
Table("VIEW_BAAN_ALTERNATE_ITEMS");
CompositeId<BaanAlternateItemKey>(x => x.Id)
.KeyProperty(x => x.ItemId, "ITEM_ID")
.KeyProperty(x => x.AlternateItemId, "ALT_ITEM_ID");
Map(x => x.Priority, "PRIORITY");
Map(x => x.ExpirationDate, "EXPIRATION_DATE").CustomType("Timestamp");
References<BaanItem>(x => x.Item, "ALT_ITEM_ID");
}
}