答案 0 :(得分:1)
此Criteria / QueryOver API完美运行:
var items = session.QueryOver<InvoiceDetail>()
.Where(i => i.Customer == AddressedToCustomer)
.And(i => i.IsCreditNote != addInvoices)
.OrderBy(i => i.DueDate).Asc
.ThenBy(i => i.InvoiceNumber).Asc
.List();
更令人惊讶的是,提供商的开发人员只是将问题/错误视为非问题,甚至没有正确地查看它们。我打算将所有Query<>
来电替换为QueryOver<>
来电,以确保无误。对于像nHibernate这样的项目,这真的很可惜,特别考虑像我这样热爱linq的开发人员。
答案 1 :(得分:0)
一些想法:
如果您正在使用SQL服务器将列类型更改为位以获取布尔值。
尝试查询替换:
3.5.4. Query Language Substitution
You may define new NHibernate query tokens using query.substitutions. For example:
query.substitutions true=1, false=0
would cause the tokens true and false to be translated to integer literals in the generated SQL.
query.substitutions toLowercase=LOWER
would allow you to rename the SQL LOWER function.