2

我正在尝试使用 NHibernate 选择 Guid 范围:

 customersToUpdate =
                    Session.QueryOver<Customer>()
                           .Where(x => x.SyncEndpointTick > localTick && x.SyncEndpointTick <= endTick).OrderBy(x => x.Id).Asc
                           .Where(x=> x.Id.ToString().ToLower() > lastResultId.ToString().ToLower())
                           .ConvertTo<List<Customer>>();

问题是 LINQ 不允许我比较 Guid:

.Where(x=> x.Id.ToString().ToLower() > lastResultId.ToString().ToLower())

谢谢你们

4

1 回答 1

2

这个答案你可以尝试替换这一行:

.Where(x=> x.Id.ToString().ToLower() > lastResultId.ToString().ToLower())

和 :

.Where(Restrictions
        .Gt(Projections.Cast(NHibernateUtil.String, Projections.Property("Id")),
            lastResultId.ToString()).IgnoreCase())

根据您的数据库排序规则,IgnoreCase可能没用。

希望这会有所帮助

于 2013-09-24T08:50:11.027 回答