使用NHibernate 2.1 Linq,为什么
本文关键字:为什么 Linq NHibernate 使用 | 更新日期: 2023-09-27 18:15:50
在使用NHibernate 2.1和Linq程序集时,当试图枚举结果或调用ToList()时,我们会得到一个异常。
我们有一个Id
的列表,我们想要得到它们的记录,我们使用以下代码
public List<TEntity> GetAllContainsItems<TEntity>(List<int> ids)
where TEntity : IEntity
{
using (IUnitOfWork uof = _container.Resolve<IUnitOfWork>())
{
uof.Initialize();
IRepository<TEntity> rep
= _container.Resolve<IRepository<TEntity>>();
// repository exposes the ISession.Linq<T> of nhibernate.
var res = rep.Find().Where(y => ids.Contains(y.Id) );
// get the exception:
// "Object reference not set to an instance of an object."
return res.ToList();
}
}
有什么想法吗?
注:我们现在不能更改Dll
您是否可以将代码更改为以下内容并查看是否有效:
if(ids==null)
{
Console.WriteLine("Why am I not surprised");
}
var res = rep.Find().Where(y => y!=null && ids.Contains(y.Id));
return res.ToList();