NHibernate createQuery с двоеточиями из метода cal - PullRequest
1 голос
/ 14 января 2010

Я получаю Antlr.Runtime.NoViableAltException при попытке выполнить следующий запрос в NHibernate.

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

Я устанавливаю долготу и широту в setQuery.

я предполагаю :: при вызове geography::STGeomFromText..., потому что думает, что это параметр запроса. Есть ли способ убежать от :?

Этот запрос работает в моей SQL Manager Studio.

Спасибо!

Ответы [ 3 ]

1 голос
/ 14 января 2010

Поддерживает ли NHIbernate метод STIntersects?

Что вы можете сделать, это позволить NHibernate выполнить (собственный) SQL-запрос, например:

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

var result = query.List<TheEntityTypeThatYouWant>();
0 голосов
/ 15 января 2010

Просто для того, чтобы поделиться тем, что я в итоге сделал, вынуло соединение ADO из сеанса NHibernate, выполнил SqlCommand напрямую и вручную создал мои объекты Model из результатов. Это отстой, но это работает. NHibernate по-прежнему правильно управляет соединением.

0 голосов
/ 14 января 2010

См. Этот пост для получения дополнительной информации: Использование типов географии SQL Server 2008 с CreateSQLQuery nHibernate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...