为什么我需要在我的asp.net mvc项目中引用nhibernate.dll?

时间:2009-12-01 21:31:39

标签: visual-studio nhibernate assemblies

我的所有数据逻辑都在我在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)的调用相同,为什么我需要添加引用?

1 个答案:

答案 0 :(得分:1)

我猜这是因为构建到对象中的延迟加载。 NHibernate创建从您的类继承的代理对象(这就是您需要将方法声明为虚拟的原因)。我猜测因为代理对象需要引用。