我有此查询(简单的示例,不是真实的查询,我需要使用 “地理”列为几何类型,执行此查询时出现此错误: 数据类型几何不能用作UNION,INTERSECT或EXCEPT运算符的操作数,因为它不可比较。 但是,如果我将该属性强制转换为 有关如何使用Linq 我有类似的东西,但是我现在不怎么做属性Geo的转换。当我执行 数据类型几何不能用作UNION,INTERSECT或EXCEPT运算符的操作数,因为它不可比较。 我在Core 3.1上使用C# 答案 0 :(得分:0) 也许您可以在Geometry类上实现IComparer接口。
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.icomparer-1?view=netframework-4.8 INTERSECT
):SELECT Id,Geo FROM Locations WHERE Id=1
INTERSECT
SELECT Id,Geo FROM Locations WHERE Id>10
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
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();
.ToList()
时,会得到相同的SqlError
:
1 个答案: