昨天在项目中,用到 EntityFramework 通过SQL语句查询。

具体的SQL语句如下:

SELECT
t.*
FROM
(
SELECT
c.id AS CommunityId,
c.`name` AS CommunityName,
ASTEXT(c.spatial_data) AS CommunitySpatialData,
s.id AS StreetId,
s.`name` AS StreetName,
ASTEXT(s.spatial_data) AS StreetSpatialData,
MBRContains (s.spatial_data ,ST_GeometryFromText('Point(@Longitude @Latitude)')) AS streetIn,
MBRContains (c.spatial_data ,ST_GeometryFromText('Point(@Longitude @Latitude)')) AS communityIn
FROM
community c
LEFT JOIN street s ON c.street_id = s.id
) AS t
WHERE
t.streetIn = 1
AND t.communityIn = 1;

应该说这样没有问题的,但是查询一直报错:“Invalid GIS data provided to function st_geometryfromtext.”

换了多种传参方式,但是都还有问题。

经过各种调试、修改参数,大致可以确定是:两个参数是连续的,中间有空格,但是在参数替换后空格替换没了,导致数据格式出错。

再次调整下传的参数就可以,修改后SQL语句:

SELECT
t.*
FROM
(
SELECT
c.id AS CommunityId,
c.`name` AS CommunityName,
ASTEXT(c.spatial_data) AS CommunitySpatialData,
s.id AS StreetId,
s.`name` AS StreetName,
ASTEXT(s.spatial_data) AS StreetSpatialData,
MBRContains (s.spatial_data ,ST_GeometryFromText(@point)) AS streetIn,
MBRContains (c.spatial_data ,ST_GeometryFromText(@point)) AS communityIn
FROM
community c
LEFT JOIN street s ON c.street_id = s.id
) AS t
WHERE
t.streetIn = 1
AND t.communityIn = 1;

对应的 point 是:

string point = "Point(" + Longitude + " " + Latitude + ")";

虽然知道了问题,也解决了,但是没有彻底解决这个问题。

有知道的可以告知下。

注意:

1、对于面数据:最后一个点应该是第一个点,这样在入库的时候才正确,否则报错“Invalid GIS data provided to function st_geometryfromtext.”

EntityFramework 两个参数连续(中间有空格)问题的更多相关文章

  1. STM32F207 两路ADC连续转换及GPIO模拟I2C给MT9V024初始化参数

    1.为了更好的方便调试,串口必须要有的,主要打印一些信息,当前时钟.转换后的电压值和I2C读出的数据. 2.通过GPIO 模拟I2C对镁光的MT9V024进行参数初始化.之前用我以前公司SP0A19芯 ...

  2. ci连贯操作的limit两个参数和sql是相反的

    ci连贯操作的limit两个参数和sql是相反的 db->where("name =",'mary')->ge() name后面要有个空格否则报错当为一个字段 -> ...

  3. 木棍加工(dp,两个参数的导弹拦截问题)

    题目描述 一堆木头棍子共有n根,每根棍子的长度和宽度都是已知的.棍子可以被一台机器一个接一个地加工.机器处理一根棍子之前需要准备时间.准备时间是这样定义的:     第一根棍子的准备时间为1分钟:   ...

  4. wParam和lParam两个参数到底是什么意思?

    在Windows的消息函数中,有两个非常熟悉的参数:wParam,lParam. 这两个参数的字面意义对于现在的程序来说已经不重要了,因为它是16位系统的产物,为了保持程序的可移植性,就将它保存了下来 ...

  5. 25.按要求编写一个Java应用程序: (1)编写一个矩形类Rect,包含: 两个属性:矩形的宽width;矩形的高height。 两个构造方法: 1.一个带有两个参数的构造方法,用于将width和height属性初化; 2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。 两个方法: 求矩形面积的方法area() 求矩形周长的方法perimeter() (2)通过继承Rect类编写一个具有

    package zhongqiuzuoye; //自己写的方法 public class Rect { public double width; public double height; Rect( ...

  6. 文件系统缓存dirty_ratio与dirty_background_ratio两个参数区别

    这两天在调优数据库性能的过程中需要降低操作系统文件Cache对数据库性能的影响,故调研了一些降低文件系统缓存大小的方法,其中一种是通过修改/proc/sys/vm/dirty_background_r ...

  7. (转)文件系统缓存dirty_ratio与dirty_background_ratio两个参数区别

    这两天在调优数据库性能的过程中需要降低操作系统文件Cache对数据库性能的影响,故调研了一些降低文件系统缓存大小的方法,其中一种是通过修改/proc/sys/vm/dirty_background_r ...

  8. [转载]C#缓存absoluteExpiration、slidingExpiration两个参数的疑惑

    看了很多资料终于搞明白cache中absoluteExpiration,slidingExpiration这两个参数的含义. absoluteExpiration:用于设置绝对过期时间,它表示只要时间 ...

  9. 三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别

    关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个 ...

随机推荐

  1. php str_getcsv解决explode不能解决的问题

    php str_getcsv解决explode不能解决的问题 <pre><?php$str = "中国,广东省,广州市,天河区,'113.329884,23.154799' ...

  2. 《ucore lab7》实验报告

    资源 ucore在线实验指导书 我的ucore实验代码 练习1: 理解内核级信号量的实现和基于内核级信号量的哲学家就餐问题(不需要编码) 题目 完成练习0后,建议大家比较一下(可用meld等文件dif ...

  3. 剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)

    1. 题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 2. 思路和方法 使用移位(<<)和 “| & !”操作来实现.1的二进制是:前面都是0,最后一位 ...

  4. Python-04-数据结构

    一.数字 整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 计算机由于使用二进制,所以,有时候用十六进制表示 ...

  5. 20191031:Python取反运算详解

    20191031:Python取反运算详解 取反运算:~3 == 4 1.对于数字 3 =======>转换为二进制表示为011 2.对011取反为100 3.为什么表示-4 a.计算机用补码表 ...

  6. WUSTOJ 1341: Lake and Island(Java)

    题目链接:1341: Lake and Island Description 北园孩子的专属福利来啦~学校从北区宿舍到湖心岛修建了一条通道让北园的同学们可以上去一(kuang)同(xiu)玩(en)耍 ...

  7. 资深程序员推荐必备书籍 《C语言程序设计》

    当下,IT行业发展日趋迅猛,产值成倍增长,高薪的诱惑更是驱使许多人想要进入IT行业发展.为了使大家更全面理解C语言程序设计,由千锋教研院高教产品研发部编著.清华大学出版社倾情出版的<C语言程序设 ...

  8. 《MySQL数据库从入门到精通》 高级运维人才的必备书籍

    众所周知,每年就业市场都会迎来千万量级的高校毕业生,然而企业招工难和毕业生就业难的矛盾却一直没有得到很好地解决.究其原因,主要矛盾还是在于传统的学历教育与企业实际需求相脱节.为了杜绝高校毕业生求职时常 ...

  9. maven配置阿里镜像

    在conf\settings.xml 在<mirrors>里面添加   <mirror>    <id>nexus-aliyun</id>    < ...

  10. git创建本地分支,推送到远程

    创建本地分支git branch 分支名 例如:git branch dev,这条命令是基于当前分支创建的本地分支,假设当前分支是master(远程分支),则是基于master分支创建的本地分支dev ...