NHibernate createQuery使用方法cal中的冒号

NHibernate createQuery使用方法cal中的冒号,nhibernate,Nhibernate,尝试在NHibernate中运行以下查询时,我会抛出一个Antlr.Runtime.noviablealException IQuery query = session.CreateQuery("from <table> where 1 in (select <column>.STIntersects(geography::STGeomFromText('POINT(:longitude :latitude)', 4326)))"); 我正在setQuery中设置经度和

尝试在NHibernate中运行以下查询时,我会抛出一个Antlr.Runtime.noviablealException

IQuery query = session.CreateQuery("from <table> where 1 in (select <column>.STIntersects(geography::STGeomFromText('POINT(:longitude :latitude)', 4326)))");
我正在setQuery中设置经度和纬度

我的假设是调用geography::stgeomefromtext中的::。。。因为它认为这是一个查询参数。有没有办法逃出这个世界

此查询在我的SQL Manager Studio中工作


谢谢

有关更多信息,请参阅本文:

有关更多信息,请参阅本文:

NHIbernate是否支持STIntersects方法

您可以让NHibernate执行本机SQL查询,如下所示:

ISQLQuery query = session.CreateSQLQuery ("your sql statement goes here");
query.AddEntity (typeof(TheEntityTypeThatYouWant));

var result = query.List<TheEntityTypeThatYouWant>();

NHIbernate是否支持StinerSects方法

您可以让NHibernate执行本机SQL查询,如下所示:

ISQLQuery query = session.CreateSQLQuery ("your sql statement goes here");
query.AddEntity (typeof(TheEntityTypeThatYouWant));

var result = query.List<TheEntityTypeThatYouWant>();

为了分享我最终所做的事情,我将ADO连接从NHibernate会话中取出,直接执行SqlCommand并根据结果手动构建模型对象。这很糟糕,但很有效。连接仍然由NHibernate正确管理。

为了分享我最终所做的事情,我将ADO连接从NHibernate会话中取出,直接执行SqlCommand并根据结果手动构建模型对象。这很糟糕,但很有效。连接仍然由NHibernate正确管理。

好建议。我忘了说我也试过了。那些该死的分号!好建议。我忘了说我也试过了。那些该死的分号!