温馨提示:本文翻译自stackoverflow.com,查看原文请点击:asp.net core - Join returns duplicate values
asp.net-core ef-core-3.1

asp.net core - 联接返回重复值

发布于 2020-03-31 23:22:00

我正在将现有的.NET代码移植到.NET核心。

有一个特定的联接代码在EFCore中不起作用。代码是:

var values = (from config in tblConfig
                               join info in tblInfo on config.No equals info.No
                               where (
                                     //some conditions
                                     )
                               select config).ToList();

在EFCore中,这将返回一个集合,其中大部分数据都是重复的。特别是,有一列regNo在某些情况下为“ -1”。连接后,该值在所有行中重复。

我尝试了分组,删除了其他一些文章中提到的条件等。但是没有用。我指的是本专栏,因为它很容易理解。

配置表 在此处输入图片说明

信息表 在此处输入图片说明

根据No领域,我需要加入。似乎所有空单元格都替换为同一表中的非空内容。

查看更多

提问者
ACB
被浏览
9
ACB 2020-02-03 13:06

就我而言,我得到了重复的值(所有其他行都重复第一行)。

当我们从没有唯一键的表中检索值时,就会发生这种情况。返回的行数将是正确的,但它们将与第一行重复。要解决此问题,请使用AsNoTracking我从forums.asp.net获得了线索

使用此功能时,很可能会错过导航属性。请参阅答案以解决问题。