9

我通过 linq 向 NHibernate 查询。

var q = SessionInstance.Query<Request>().Max(e => e.Code);

如果Request表没有行,则执行此查询会引发 GenericADOException 并显示以下消息:

{"Could not execute query[SQL: SQL not available]"}

{"Value cannot be null.\r\nParameter name: item"}

我应该怎么办?

4

2 回答 2

13

尝试这个

SessionInstance.Query<Request>().Max(x => (int?)x.Code);
于 2012-06-12T14:00:50.467 回答
1

我认为这应该适用于 Linq-to-Nhibernate:

var q = SessionInstance.Query<Request>().Select(e => e.Code)
    .DefaultIfEmpty().Max();

或者也许DefaultIfEmpty(<some value>)

于 2012-06-12T14:18:23.923 回答