C# 在NHibernate中,如何向Restrictions.Eq添加替换?
我想添加一个Restrictions.Eq,在列名周围用TSQL替换。我该怎么做C# 在NHibernate中,如何向Restrictions.Eq添加替换?,c#,nhibernate,C#,Nhibernate,我想添加一个Restrictions.Eq,在列名周围用TSQL替换。我该怎么做 string location = "Columbus OH"; var requestQuery = Session.CreateCriteria<Request>(); requestQuery.Add(Restrictions.Eq("Replace(LocationName,',','')", location); string location=“哥伦布OH”; var requestQu
string location = "Columbus OH";
var requestQuery = Session.CreateCriteria<Request>();
requestQuery.Add(Restrictions.Eq("Replace(LocationName,',','')", location);
string location=“哥伦布OH”;
var requestQuery=Session.CreateCriteria();
Add(Restrictions.Eq(“Replace(LocationName,,,,,,”)位置);
一种可能的方法是使用SqlProjection
。例如:
string location = "Columbus OH";
var session = NHSession.GetCurrent();
var query = session.CreateCriteria<Request>();
query.Add(Restrictions
.Eq( // SQL Server function call
Projections.SqlProjection(
"Replace(LocationName,',','') as Replacement"
, new[] {"Replacement"}
, new IType[] {NHibernateUtil.String})
, location // searched value
));
var list = query.List<Request>();
string location=“哥伦布OH”;
var session=NHSession.GetCurrent();
var query=session.CreateCriteria();
添加(限制)
.Eq(//SQL Server函数调用
Projections.SqlProjection(
替换(位置名称,,,'')为替换
,新[]{“替换”}
,新的IType[]{NHibernateUtil.String})
,位置//搜索值
));
var list=query.list();
您需要注册函数Replace
或使用SQL表达式,请参阅此处了解更多详细信息