当使用带有Linq程序集的NHibernate 2.1时,我们在尝试枚举结果或调用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();
}
}
有什么想法吗?
P.S。 我们现在无法更改Dll。
答案 0 :(得分:0)
您可以将代码更改为以下内容并查看其是否有效:
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();