NHibernate Criteria限制与数据库执行SHA1?

时间:2012-04-26 21:58:57

标签: c# mysql nhibernate

是否可以转换此类查询:

SELECT field1, field2 FROM table WHERE SHA1(field1 + field2) = 'hash'; 

进入NHibernate的Criteria语言?例如:

session.CreateCriteria<Car>()
    .Add(Expression.Eq("SHA1(field1 + field2)", "hash"));

1 个答案:

答案 0 :(得分:2)

也许这个答案对你有用吗?

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"));