我对Linq的nHibernate有一些非常奇怪的行为。 我可以检索我想要的所有对象,我可以添加where子句。
但在一个非常具体的案例中,我得到以下例外:
无法加载x.Foo.Bar.Bars类型。可能的原因:组装是 未加载或未加载。
x.Foo.Bar.Bars
是where子句中lambda表达式的一部分。
其中Bars是对象的集合。当我在没有where子句的情况下进行查询时,该集合将被完美填充。
query.Where(x => x.Foo.Bar.Bars.Any(b => b.Name == "BarName"));
堆栈跟踪是这样的:
at NHibernate.Util.ReflectHelper.ClassForFullName(String 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>
答案 0 :(得分:0)
access="Bars, Assembly"
看起来不对劲。您不希望定义在类Bars
中实现的访问策略,是吗?