Linq to nHibernate で非常に奇妙な動作が発生しています。必要なすべてのオブジェクトを取得でき、where 句を追加できます。
しかし、非常に特殊なケースでは、次の例外が発生します。
タイプ x.Foo.Bar.Bars を読み込めませんでした。考えられる原因: アセンブリが読み込まれていないか、指定されていません。
x.Foo.Bar.Bars
where句のラムダ式の一部です。
Bars はオブジェクトのコレクションです。where句なしでクエリを実行すると、コレクションが完全に満たされます。
query.Where(x => x.Foo.Bar.Bars.Any(b => b.Name == "BarName"));
スタックトレースは次のとおりです。
NHibernate.Util.ReflectHelper.ClassForFullName (文字列 classFullName) で
はい、私のマッピング ファイルは埋め込みリソースです。
マッピングの一部:
<bag name ="Bars" inverse="true" lazy="false"
cascade="none" optimistic-lock="false"
access="Framework.NHibernate.Properties.EntityCollectionAccessor, Assembly">
<key column="BagId" />
<one-to-many class="Bar"/>
</bag>