さて、あなたが言う前に:私は Google をやった、そして私のhbm.xml
ファイルは埋め込みリソースである。
これが私が呼んでいるコードです:
ISession session = GetCurrentSession();
var returnObject = session.Get<T>(Id);
これがクラスのマッピングファイルです。
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="HQData.Objects.SubCategory, HQData" table="SubCategory" lazy="true">
<id name="ID" column="ID" unsaved-value="0">
<generator class="identity" />
</id>
<property name="Name" column="Name" />
<property name="NumberOfBuckets" column="NumberOfBuckets" />
<property name="SearchCriteriaOne" column="SearchCriteriaOne" />
<bag name="_Businesses" cascade="all">
<key column="SubCategoryId"/>
<one-to-many
class="HQData.Objects.Business, HQData"/>
</bag>
<bag name="_Buckets" cascade="all">
<key column="SubCategoryId"/>
<one-to-many
class="HQData.Objects.Bucket, HQData"/>
</bag>
</class>
</hibernate-mapping>
誰かが以前にこの問題に遭遇したことがありますか?
ここに完全なエラーメッセージがあります:
MappingException:パーシスターなし:HQData.Objects.SubCategory] NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName、Boolean throwIfNotFound) c:\ CSharp \ NH2.0.0 \ nhibernate \ src \ NHibernate \ Impl \ SessionFactoryImpl.cs:766 NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName) c:\ CSharp \ NH2.0.0 \ nhibernate \ src \ NHibernate \ Impl \ SessionFactoryImpl.cs:752 NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event、LoadType loadType) c:\ CSharp \ NH2.0.0 \ nhibernate \ src \ NHibernate \ Event \ Default \ DefaultLoadEventListener.cs:37 NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event、LoadType loadType) c:\ CSharp \ NH2.0.0 \ nhibernate \ src \ NHibernate \ Impl \ SessionImpl.cs:2054 NHibernate.Impl.SessionImpl.Get(String entityName、Object id) c:\ CSharp \ NH2.0.0 \ nhibernate \ src \ NHibernate \ Impl \ SessionImpl.cs:1029 NHibernate.Impl.SessionImpl.Get(Type entityClass、Object id) c:\ CSharp \ NH2.0.0 \ nhibernate \ src \ NHibernate \ Impl \ SessionImpl.cs:1020 NHibernate.Impl.SessionImpl.Get(Object id) c:\ CSharp \ NH2.0.0 \ nhibernate \ src \ NHibernate \ Impl \ SessionImpl.cs:985 HQData.DataAccessUtils.NHibernateObjectHelper.LoadDataObject(Int32 Id) C:\ Development \ HQChannelRepo \ HQ Channel Application \ HQChannel \ HQData \ DataAccessUtils \ NHibernateObjectHelper.cs:42 HQWebsite.LocalSearch.get_subCategory()内 C:\ Development \ HQChannelRepo \ HQ Channel Application \ HQChannel \ HQWebsite \ LocalSearch.aspx.cs:17 HQWebsite.LocalSearch.Page_Load(Object sender、EventArgs e) C:\ Development \ HQChannelRepo \ HQ Channel Application \ HQChannel \ HQWebsite \ LocalSearch.aspx.cs:27 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp、Object o、Object t、EventArgs e)+15 System.Web .Util.CalliEventHandlerDelegateProxy.Callback(Object sender、EventArgs e)+33 System.Web.UI.Control.OnLoad(EventArgs e)+99 System.Web.UI.Control.LoadRecursive()+47 System.Web.UI.Page .ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint、Boolean includeStagesAfterAsyncPoint)+1436
更新、これが私のシナリオの解決策でした:いくつかのコードを変更しましたが、実行時にアセンブリを構成ファイルに追加していませんでした。