我有 2 张桌子
表A:
TableAID int,
Col1 varchar(8)
表B:
TableBID int
Col1 char(8),
Col2 varchar(40)
当我在 2 个表上运行 SQL 查询时,它返回以下行数
SELECT * FROM tableA (7200 rows)
select * FROM tableB (28030 rows)
在 col1 上加入并选择数据时,它返回以下行数
select DISTINCT a.Col1,b.Col2 FROM tableA a
join tableB b on a.Col1=b.Col1 (6578 rows)
以上 2 个表在不同的数据库上,所以我创建了 2 个 EF 模型并分别重试数据,并尝试使用具有以下功能的 linq 将它们加入代码中。令人惊讶的是,它返回 2886 条记录而不是 6578 条记录。难道我做错了什么?各个列表似乎返回了正确的数据,但是当我加入它们时,SQL 查询和 linq 查询的记录数不同。
非常感谢您对此的任何帮助。
// This function is returning 2886 records
public List<tableC_POCO_Object> Get_TableC()
{
IEnumerable<tableC_POCO_Object> result = null;
List<TableA> tableA_POCO_Object = Get_TableA(); // Returns 7200 records
List<TableB> tableB_POCO_Object = Get_TableB(); // Returns 28030 records
result = from tbla in tableA_POCO_Object
join tblb in tableB_POCO_Object on tbla.Col1 equals tblb.Col1
select new tableC_POCO_Object
{
Col1 = tblb.Col1,
Col2 = tbla.Col2
};
return result.Distinct().ToList();
}