1

我在使用 Linq to 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"));

堆栈跟踪是这样的:

在 NHibernate.Util.ReflectHelper.ClassForFullName(字符串类全名)

是的,我的映射文件是嵌入式资源。

部分映射:

<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>
4

1 回答 1

0

access="Bars, Assembly"看起来不对。您不想定义在类中实现的访问策略,是Bars吗?

于 2013-02-14T12:51:44.407 回答