Maintenant, avant de le dire : I a fait Google et mon hbm.xml
fichier est une ressource intégrée.
Voici le code que j'appelle :
ISession session = GetCurrentSession();
var returnObject = session.Get<T>(Id);
Voici mon fichier de correspondance pour la classe :
<?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>
Quelqu'un a-t-il déjà rencontré ce problème ?
Voici le message d'erreur complet :
MappingException: No persister for: HQData.Objects.SubCategory\]NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName, Boolean throwIfNotFound) in c:\\CSharp\\NH2.0.0\\nhibernate\\src\\NHibernate\\Impl\\SessionFactoryImpl.cs:766 NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName) in c:\\CSharp\\NH2.0.0\\nhibernate\\src\\NHibernate\\Impl\\SessionFactoryImpl.cs:752 NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType) in c:\\CSharp\\NH2.0.0\\nhibernate\\src\\NHibernate\\Event\\Default\\DefaultLoadEventListener.cs:37 NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType) in c:\\CSharp\\NH2.0.0\\nhibernate\\src\\NHibernate\\Impl\\SessionImpl.cs:2054 NHibernate.Impl.SessionImpl.Get(String entityName, Object id) in c:\\CSharp\\NH2.0.0\\nhibernate\\src\\NHibernate\\Impl\\SessionImpl.cs:1029 NHibernate.Impl.SessionImpl.Get(Type entityClass, Object id) in c:\\CSharp\\NH2.0.0\\nhibernate\\src\\NHibernate\\Impl\\SessionImpl.cs:1020 NHibernate.Impl.SessionImpl.Get(Object id) in c:\\CSharp\\NH2.0.0\\nhibernate\\src\\NHibernate\\Impl\\SessionImpl.cs:985 HQData.DataAccessUtils.NHibernateObjectHelper.LoadDataObject(Int32 Id) in C:\\Development\\HQChannelRepo\\HQ Channel Application\\HQChannel\\HQData\\DataAccessUtils\\NHibernateObjectHelper.cs:42 HQWebsite.LocalSearch.get\_subCategory() in C:\\Development\\HQChannelRepo\\HQ Channel Application\\HQChannel\\HQWebsite\\LocalSearch.aspx.cs:17 HQWebsite.LocalSearch.Page\_Load(Object sender, EventArgs e) in 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
Mise à jour voici la solution pour mon Le scénario était : J'avais modifié du code et je n'ajoutais pas l'assemblée au fichier de configuration pendant l'exécution.
0 votes
J'ai eu la même erreur, mais un problème différent. Session.Load("SearchItem",searchItemID) en tant que SearchItem renvoie une erreur de mappage, Session.Load<SearchItem>(searchItemID) ne le fait pas (et c'est une façon de faire moins sujette aux erreurs de toute façon.