我正在尝试使用NHibernate选择Guids范围:
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不允许我比较Guids:
.Where(x=> x.Id.ToString().ToLower() > lastResultId.ToString().ToLower())
谢谢大家
答案 0 :(得分:2)
您可能会尝试替换此行:
.Where(x=> x.Id.ToString().ToLower() > lastResultId.ToString().ToLower())
with:
.Where(Restrictions
.Gt(Projections.Cast(NHibernateUtil.String, Projections.Property("Id")),
lastResultId.ToString()).IgnoreCase())
根据您的数据库归类,IgnoreCase
可能无用。
希望这会有所帮助