我遇到了通过接口获取正确数量的对象的问题:
var count = session.Query<IDirty>().Count();
有 2 个类实现了 IDirty 接口。Count 返回一个类的对象数,忽略第二个。
QueryOver 只是抛出该项目不是唯一的异常。
var count2 = session.QueryOver<IDirty>().RowCount();
它在内部使用 SingleOrDefault 方法,这解释了为什么它失败了......
获取项目列表正常工作 - 列表包括两种类型的对象:
var list= session.Query<IDirty>().ToList();
是否有任何解决方法可以在不枚举所有项目的情况下获得正确的计数?