在Linq中使用带有Nhibernate的Count()时,不支持指定的方法

时间:2017-11-10 15:13:04

标签: c# linq nhibernate

当我使用.Count()时,我收到此错误:

  

不支持指定的方法

此行正在收到类似Sql not found的错误:

session.Query<Table>().Select(x => new { x.Id }).Distinct();

这是完整的代码:

var List = session.Query<Table>().Select(x => new { x.Id }).Distinct();
foreach (var id in SelectedIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
    var count = List.Where(x => x.Id == Int32.Parse(id)).Count();
    if (count > 0)
    {

    }
}

Nhibernate有问题还是我错过了什么?

1 个答案:

答案 0 :(得分:3)

试着像这样推出演员:

int idCompare = Int32.Parse(id);
var count = List.Where(x => x.Id == idCompare).Count();

Linq无法将每个.NET Framework高级功能转换为sql。

也许这解决了你的问题。

当您需要检查linq中是否有.NET方法时,您可能需要检查this source以及this