2010-01-14 61 views
1

我在嘗試運行NHibernate的以下查詢時拋出的​​。的NHibernate的createQuery與方法CAL冒號

IQuery query = session.CreateQuery("from <table> where 1 in (select <column>.STIntersects(geography::STGeomFromText('POINT(:longitude :latitude)', 4326)))"); 

我在setQuery中設置經度和緯度。

我的假設是::在調用geography::STGeomFromText...,因爲它認爲這是一個查詢參數。有沒有辦法逃離:

此查詢適用於我的SQL Manager Studio。

謝謝!

回答

1

不NHibernate的支持STIntersects方法?

你可以做什麼,是讓NHibernate的執行(原生)SQL查詢,例如:

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

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

好的建議。我忘了提及我也嘗試過。那些會冒出分號! – Erix 2010-01-14 14:55:59

0

只是爲了分享我落得這樣做服用ADO連接了NHibernate的會議,表演一個SqlCommand從結果直接手動構建我的Model對象。它很糟糕,但它有效。 NHibernate正確地管理連接。