如何解决实体框架:如何使用多边形类型进行嵌套的“选择不同的..何处”
我们在EF中有以下情况/查询:
return await dbcontext.TopografischePercelen
.AsQueryable()
.Where(p => p.PeriodeId == 43)
.Select(t => new
{
t.Id,// polygon array
Omtrek =
t.Gewaspercelen.SelectMany(gp => gp.OverlappendeReferentiepercelen)
.Select(r => r.Referentieperceel.GeoData.RDNewGeo)
.distinct() // <-- cannot use this with polygon type
.ToArray(),// other data
})
.ToListAsync();
但这不起作用。我给出了运行时错误:
由于无法比较,因此无法将几何数据类型选择为disTINCT。
它应返回TopografischPerceel
个实体的数组,每个实体都有一个属性Omtrek
,其中包含一个“多边形数组”,该多边形基于由几条Gewasperceel
子记录引用的多边形TopografischPerceel
的记录:
关系:
TopografischePerceel
\-* Gewasperceel
\-* Referentieperceel (has one polygon)
有什么办法可以使它工作?
样本数据:
Topo1
|- gewasperc1
| \- refperc1
\- gewasperc2
\- refperc1
Topo2
|- gewasperc3
| \- refperc2
\- gewasperc4
\- refperc3
应该导致
Topo1
|- Id = 1
\- omtrek = [refperc1-geo]
Topo2
|- Id = 2
\- omtrek = [refperc2-geo,refperc3-geo]
但是当我不使用“ distinct”时,查询将运行,但返回:
Topo1
|- Id = 1
\- omtrek = [refperc1-geo,refperc1-geo]
Topo2
|- Id = 2
\- omtrek = [refperc2-geo,refperc3-geo]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。