如何在linq中选择字符串的最大值为nhibernate

时间:2012-12-03 11:55:26

标签: c# linq nhibernate max linq-to-nhibernate

我有课程。此类按字符串类型包含代码列。 我有一个linq-to-NHibernte查询选择最大代码。

var q = SessionInstance.Query<Card>()
       .Max(x => x.Code);

例如,此列的数据为:18950,9850,预期结果为18950,结果为9850

我将此查询更改为:

var q = SessionInstance.Query<Card>()
       .Max(x => int.Parse(x.Code));

但是上面的查询在此消息中有一个运行时异常:

Expression type 'NhMaxExpression' is not supported by this SelectClauseVisitor.

为什么?

2 个答案:

答案 0 :(得分:1)

NHibernate不知道如何将int.Parse调用转换为SQL。

最简单的解决方案:使用SQL。

更复杂和/或更有趣:扩展NHibernate LINQ提供程序以支持该调用。 Google extending nhibernate linq获取某些链接。

答案 1 :(得分:0)