もちろん、既存のトピックを検索し、そこに示されている解決策を試しましたが、成功しませんでした。たぶん、誰かが追加のヒントを与えることができます。
シナリオは次のとおりです。
複数のアセンブリからのエンティティを処理するために、1 つの NHibernate プロジェクトを使用します。処理されるアセンブリには、いくつかのエンティティと、埋め込みリソースとしてコンパイルされたマッピング ファイルが含まれます。
namespace projectName.namespace
{
public class Entity
{
public virtual Guid Id { get; set; }
public virtual string IsoCode { get; set; }
}
}
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="projectName.namespace.Entity,projectName">
<id name="Id" column="EntityId">
<generator class="guid" />
</id>
</class>
</hibernate-mapping>
NHibernate プロジェクトでは、アセンブリは次の方法でロードされます。
Assembly assembly = Assembly.Load(assemblySourcePath);
最後に、マッピングを構成に追加すると、NHibernate は MappingException をスローします。
configuration.AddAssembly(assembly);
その問題を解決する方法が本当にわかりません。あなたの誰かはいますか?
よろしく!
編集1ここに例外出力があります(翻訳および要約):
NHibernate.MappingException: Could not compile the mapping document (the one from above)
persistent class "classname, assemblyname" not found -> System.IO.FileNotFoundException: file or assembly "assemblyname" or one of its dependencies not found.
編集 2 Fluent NHibernate をもう一度試してみました。マッピング クラスは再び検出されますが、エンティティは検出されません。
persistent class dom.Project.BusinessEntities.Class, dom.Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null not found
よろしく
編集 3 ソリューション ソリューションは非常に単純で、ドメイン ルートの下にあるかどうかに関係なく、nhibernate が任意のアセンブリをロードできることを示しています。グローバル アセンブリ キャッシュに読み込まれるアセンブリをインストールすると、nhibernate はその抗議を停止します :-)
よろしくお願いします。