Nhibernate fluent を使用してマッピングを作成する必要があります。
私はhbmで次のものを持っています
<class name="XYZ" table="Some_Table">
<composite-id>
<key-many-to-one name="A" column="A_ID"/>
<key-property name="Term" type="Some_Assembly">
<column name="YEAR"/>
<column name="MONTH"/>
</key-property>
</composite-id>
<property name="P" column="P"/>
</class>
これを流暢に書き直す必要があります。主な理由は、hbm ファイルから fluent に移行することです。
これまでのところ、私は以下を持っています
public class XYZMap: ClassMap<XYZ>
{
public XYZMap()
{
Table("Some_Table");
CompositeId()
.KeyProperty(x=> x.Term, set =>
{
set.ColumnName("Year");
set.ColumnName("Month");
set.Type(typeof(Some_Assembly));
})
.KeyProperty(x=> x.A, set =>
{
set.ColumnName("A");
set.Type(typeof (Other_Assembly));
});
Map(x=> x.P, "P");
}
}
しかし、次のエラーが表示されます
X.Y.TestZ.PostCreate:
SetUp : Autofac.Core.DependencyResolutionException : An exception was thrown while executing a resolve operation. See the InnerException for details.
----> FluentNHibernate.Cfg.FluentConfigurationException : An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
----> NHibernate.MappingException : Could not compile the mapping document: (XmlDocument)
----> NHibernate.MappingException : Could not determine type for: Other_Assembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, for columns: NHibernate.Mapping.Column(A_ID)
fluent を使用して構成しようとしているときに、多対 1 をマップできないと思います。
だから誰か助けてください。