微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

实体框架:如何使用多边形类型进行嵌套的“选择不同的..何处”

如何解决实体框架:如何使用多边形类型进行嵌套的“选择不同的..何处”

我们在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 举报,一经查实,本站将立刻删除。