WHERE子句中的NHibernate本机SQL

时间:2013-01-25 22:19:59

标签: sql nhibernate geospatial

我在SQL Server的表中有一个Geography列,并希望过滤具有特定几何类型的行,例如:几何类型为“Point”的所有记录

SQL查询看起来像

select * from GeometryTable g where g.Geography.STGeometryType() = 'Point'

如何为此创建标准?该标准将与其他标准一起使用

criteria.Add(Restrictions.Add(<Geography.STGeometryType()>, some.Value)

由于

1 个答案:

答案 0 :(得分:1)

使用以下语法:

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