4Manuals

  • PDF Cloud HOME

与SQL Server中的“几何”列相交 Download

    获取Hough线的交点OpenCV C ++ 如何将字符串“ text1”设置为包含项目text1,text2,test3的组合框的选定项目? 为什么System.Net.Mail.MailAddress构造函数在域部分中解析带有斜杠“ /”的电子邮件? Android 10,API29:在应用程序文件夹中使用C ++库编写文件会使应用程序崩溃 Unity-LineRenderer没有出现在版本(2D)上 按下按钮后,电话中未显示通知 ASP.net,使用WebConfig httpErrors重定向到区域内的控制器不起作用 获取会议室详细信息 我们如何将参数Line转换为Station? 网络核心:查找实体框架核心的主键和反射

我有此查询(简单的示例,不是真实的查询,我需要使用INTERSECT):

SELECT Id,Geo FROM Locations WHERE Id=1
INTERSECT 
SELECT Id,Geo FROM Locations WHERE Id>10

“地理”列为几何类型,执行此查询时出现此错误:

  

数据类型几何不能用作UNION,INTERSECT或EXCEPT运算符的操作数,因为它不可比较。

但是,如果我将该属性强制转换为nvarchar,则它可以正常工作:

SELECT Id, CAST(Geo AS NVARCHAR(MAX)) as Geo 
FROM Locations 
WHERE Id = 1
INTERSECT 
SELECT Id, CAST(Geo AS NVARCHAR(MAX)) as Geo 
FROM Locations 
WHERE Id > 10

有关如何使用Linq IQueryable进行投射的任何想法?

var query1= _context.Set<Location>().Where(x => x.Id = 1);
var query2= _context.Set<Location>().Where(x => x.Id > 10);
var result= query1.Intersect(query2).ToList();

我有类似的东西,但是我现在不怎么做属性Geo的转换。当我执行.ToList()时,会得到相同的SqlError:

  

数据类型几何不能用作UNION,INTERSECT或EXCEPT运算符的操作数,因为它不可比较。

我在Core 3.1上使用C#

1 个答案:

答案 0 :(得分:0)

也许您可以在Geometry类上实现IComparer接口。 https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.icomparer-1?view=netframework-4.8



Similar searches
    结构的原始输出 原始存储库从位置到位置 用于OpenGL调试模式的QWindow :: setFormat可以运行,但是核心模式被忽略 如果任何学生的任何学科的分数均小于20,我必须打印一张表格,并附上详细信息,状态应为失败并显示为红色 在Node.js中从Windows Volume GUID名称路径查找文件