具有数据库执行的 SHA1 的 NHibernate 条件限制
本文关键字:条件 NHibernate SHA1 数据库 执行 | 更新日期: 2023-09-27 18:32:19
是否可以转换这种查询:
SELECT field1, field2 FROM table WHERE SHA1(field1 + field2) = 'hash';
进入NHibernate的标准语言? 例如,像这样:
session.CreateCriteria<Car>()
.Add(Expression.Eq("SHA1(field1 + field2)", "hash"));
也许这个答案对你有用?
https://stackoverflow.com/a/797243
我会尝试这样的事情:
ISQLFunction sqlAdd = new VarArgsSQLFunction("(", "+", ")");
var concat = Projections.SqlFunction(sqlAdd, NHibernateUtil.String, Projections.Property("ObjectProperty1"), Projections.Property("ObjectProperty2"));
var sha1 = Projections.SqlFunction("SHA1", NHibernateUtil.String, concat);
...
session.CreateCriteria<Car>().Add(Expression.Eq(sha1, "hash"));