我的所有数据逻辑都在我在asp.net mvc项目中引用的另一个数据层项目中。
现在,如果我打电话:
CategoryDAO.GetById(1);
一切正常。
如果我打电话:
CategoryDAO.GetBlah(1);
VS.NET抱怨说
"Error 102: The type 'NHibernate.Criterion.Order' is defined in an assembly
that is not referenced. You must add a reference to assembly 'NHibernate,
Version=2.1.2.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4'."
如果我在我的网站项目中添加nhibernate.dll作为参考,那就可以了。
这是为什么?逻辑/代码在我的数据层中,它返回与GetById(1)的调用相同,为什么我需要添加引用?
答案 0 :(得分:1)
我猜这是因为构建到对象中的延迟加载。 NHibernate创建从您的类继承的代理对象(这就是您需要将方法声明为虚拟的原因)。我猜测因为代理对象需要引用。