sql-server – 使用带有nHibernate的CreateSQLQuery的SQL Server
|
我试图用nHibernate(2.0.1GA)发出一个SQL更新语句,如下所示: sqlstring = string.Format("set nocount on;update myusers set geo=geography::Point({0},{1},4326) where userid={2};",mlat,mlong,userid);
_session.CreateSQLQuery(sqlstring).ExecuteUpdate();
但是我收到以下错误:’geography @ p0’不是公认的内置函数名称. 我认为CreateSQLQuery只会传递我给它的SQL并执行它…猜不是.关于如何在nHibernate的上下文中做到这一点的任何想法? 解决方法我很确定我可以告诉你发生了什么,但我不知道是否有解决方法.我认为问题是NHibernate使用’:’字符来创建命名参数.您的表达式将更改为: set nocount on;update myusers set geo=geography@p0({0},4326) where userid={2};
@ p0将成为SQL变量.遗憾的是,我找不到任何有关转义冒号的文档,因此它们不会被视为命名参数. 如果存在转义字符(我快速浏览NHibernate源代码没有找到;如果你想花一点时间搜索,则命名参数在NHibernate.Engine.Query.ParameterParser中处理),那么你可以使用它. 其他方案: >向源添加转义字符.然后,您可以使用NHibernate的修改版本.如果你这样做,你应该把你的补丁提交给团队,这样它就可以包含在真实的东西中,你不必维护源的修改版本(没有乐趣). (编辑:云计算网_韶关站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – 将xlsx表读入SQL Server数据库中的表的代码
- 巨多音乐、巨多精彩,尽在Kuro-MP3的天堂
- 新浪联手顺和达:国产软件新秀评选活动开幕
- sql – ORA-22905 – 使用select语句查询表类型时
- 还有哪些其他数据库具有与Oracle的闪回查询类似的功能?
- 地下狂飙——BenQ 12ms液晶车赛,吸引力爆棚
- sql-server – 如何通过数据库获取特定实例的CPU使用率?
- MVC使用Controller代替Filter完成登录验证(Session校验)学
- 微软升级MSN瞄准宽带 Premium版年底将上市
- SQL查询如果匹配另一个表中的条目(例如假日日期),则排除记录

