WHERE子句中的NHibernate本机SQL

WHERE子句中的NHibernate本机SQL,sql,nhibernate,geospatial,Sql,Nhibernate,Geospatial,我在SQL Server的表中有一个地理列,希望筛选具有特定几何类型的行,例如几何类型为“点”的所有记录 SQL查询如下所示 select * from GeometryTable g where g.Geography.STGeometryType() = 'Point' 我如何才能为此创建标准?该标准将与其他标准一起使用 criteria.Add(Restrictions.Add(<Geography.STGeometryType()>, some.Value) criter

我在SQL Server的表中有一个地理列,希望筛选具有特定几何类型的行,例如几何类型为“点”的所有记录

SQL查询如下所示

select * from GeometryTable g where g.Geography.STGeometryType() = 'Point'
我如何才能为此创建标准?该标准将与其他标准一起使用

criteria.Add(Restrictions.Add(<Geography.STGeometryType()>, some.Value)
criteria.Add(Restrictions.Add(,some.Value)
谢谢使用以下语法:

var criteria = session.CreateCriteria<Geometry>();
criteria.Add
(
  Expression.Sql(" {alias}.[Geography].STGeometryType() = ? "
  , "Point"                               // a place for your parameter
  , NHibernate.NHibernateUtil.String)
);
var list = criteria.List<Geometry>();
var-criteria=session.CreateCriteria();
标准。添加
(
表达式.Sql(“{alias}.[Geography].STGeometryType()=?”
,“点”//a参数的位置
,NHibernate.NHibernateUtil.String)
);
var list=criteria.list();