我有一个 EF 查询,如下所示:
var x = _db.qMetaDataLookups.ToList();
如果我直接在 SQL 服务器上执行,SELECT * FROM qMetaDataLookup
将返回 2155 个不同的行。执行上述操作后,x ALSO 包含 2155 个元素。
问题是数据有误。我从 EF 获取的数据与从 SQL 查询获取的数据不同。
特别是,SQL 输出中存在一个特定元素,称为“WXYZ”,它在 EF 版本的查询中根本没有出现(针对完全相同的数据库)。
相反,我发现很多重复。如果我x.Distinct()
将列表过滤器从 2155 个元素减少到仅 143 个。
我很困惑。我从未见过我的 EF 和 SQL 结果在如此简单的查询上有所不同。必须有一个非常简单的 [face-palm] 解释,但我错过了它。
谢谢。
编辑 qMetaDataLookup(视图)包含有关我们数据库的信息。本质上,它是所有表和视图的列表,以及它们的每一列,以及有关数据类型、长度、精度、比例等的其他信息。该表中的“键”应该是与“tableName”匹配的列。 columnName”,而是 EF 为其选择了所有数据类型属性。这就是查询无法按预期执行的原因。