LINQ查询的结果不等于SQL查询的结果

帕特里克·皮尔泽

我必须制作SELECT一些实体(表),这些实体需要大量的JOIN。

当我在SQL Server Management Studio中编写该查询时,它可以工作,但是在带有LINQ的C#代码中,没有任何匹配项。

这里有一些例子:

SELECT 
    dbo.Person.PersonID,
    dbo.Person.txtFirstName,
    dbo.Person.txtLastName,
    dbo.Person.txtAccount
FROM
    [dbo].[Person]
INNER JOIN 
    dbo.CustomFieldData_Person ON dbo.Person.PersonID = dbo.CustomFieldData_Person.PersonID
INNER JOIN 
    dbo.CustomFieldData ON dbo.CustomFieldData_Person.CustomFieldDataID = dbo.CustomFieldData.CustomFieldDataID
INNER JOIN 
    dbo.CustomFieldListData ON dbo.CustomFieldData.CustomFieldDataID = dbo.CustomFieldListData.CustomFieldDataID
INNER JOIN 
    dbo.CustomListItem ON dbo.CustomFieldListData.CustomListItemID = dbo.CustomListItem.CustomListItemID
WHERE 
    [dbo].[CustomListItem].[CustomListItemID] = 218
    AND [dbo].[CustomListItem].[CustomListID] = 41
    AND [dbo].[Person].[InstanceID] = 80

符合条件:30

List<Person> result =
        (from p in DB_Instance_Singleton.getInstance.Person
         join cfdp in DB_Instance_Singleton.getInstance.CustomFieldData_Person on p.PersonID equals cfdp.PersonID
         join cfd in DB_Instance_Singleton.getInstance.CustomFieldData on cfdp.CustomFieldDataID equals cfd.CustomFieldDataID
         join cfld in DB_Instance_Singleton.getInstance.CustomFieldListData on cfd.CustomFieldDataID equals cfld.CustomFieldDataID
         join cli in DB_Instance_Singleton.getInstance.CustomListItem on cfld.CustomListItemID equals cli.CustomListItemID
         where (cli.CustomListItemID == iCustomListItemID)
         && (cli.CustomListID == iCustomListID)
         && (p.InstanceID == iInstanceID)
         select p).ToList<Person>();

符合条件:0

SELECT dbo.Person.PersonID,
       dbo.Person.txtFirstName,
       dbo.Person.txtLastName,
       dbo.Person.txtAccount
FROM [dbo].[Person]
INNER JOIN dbo.CustomFieldData_Person ON dbo.Person.PersonID = dbo.CustomFieldData_Person.PersonID
INNER JOIN dbo.CustomFieldData ON dbo.CustomFieldData_Person.CustomFieldDataID = dbo.CustomFieldData.CustomFieldDataID
INNER JOIN dbo.CustomFieldListData ON dbo.CustomFieldData.CustomFieldDataID = dbo.CustomFieldListData.CustomFieldDataID
INNER JOIN dbo.CustomListItem ON dbo.CustomFieldListData.CustomListItemID = dbo.CustomListItem.CustomListItemID
WHERE [dbo].[Person].[InstanceID] = 80

符合条件:142

    List<Person> result =
        (from p in DB_Instance_Singleton.getInstance.Person
         join cfdp in DB_Instance_Singleton.getInstance.CustomFieldData_Person on p.PersonID equals cfdp.PersonID
         join cfd in DB_Instance_Singleton.getInstance.CustomFieldData on cfdp.CustomFieldDataID equals cfd.CustomFieldDataID
         join cfld in DB_Instance_Singleton.getInstance.CustomFieldListData on cfd.CustomFieldDataID equals cfld.CustomFieldDataID
         join cli in DB_Instance_Singleton.getInstance.CustomListItem on cfld.CustomListItemID equals cli.CustomListItemID
         where (p.InstanceID == iInstanceID)
         select p).ToList<Person>();

符合条件:142

看来CustomListItemWHERE子句中实体的列存在问题

但是我不明白为什么。

帕特里克·皮尔泽

感谢JamieD77,我发现了我的错误。LINQ-SQL是正确的,但是我在C#代码中交换了两个参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

DynamoDB with NodeJS - 获取 ID 不等于第一个查询结果的元素列表

来自分类Dev

不等于联接查询

来自分类Dev

不等于联接查询

来自分类Dev

SQL查询所有ID不等于会话ID

来自分类Dev

在mongodb中查询类型不等于

来自分类Dev

在mongodb中查询类型不等于

来自分类Dev

不等于<>查询排除NULL值

来自分类Dev

SQL SELECT查询,使用等于或不等于的一列值组合匹配的行

来自分类Dev

SQL Server 2012:选择结果不等于字符串

来自分类Dev

如何在SQL查询中使用不等于CASE语句

来自分类Dev

android ORMLite获取查询,其中不等于

来自分类Dev

用LIKE和不等于TO的Postgres查询

来自分类Dev

android ORMLite获取查询,其中不等于

来自分类Dev

不等于在 2 个不同的表中查询

来自分类Dev

枚举Linq查询结果

来自分类Dev

返回LINQ查询结果

来自分类Dev

处置LINQ查询的结果

来自分类Dev

枚举Linq查询结果

来自分类Dev

连接Linq查询中的Linq查询结果

来自分类Dev

SQL查询:[计算查询结果]

来自分类Dev

SQL联接查询以获取借方余额不等于0的项目名称,借方余额的日期和总和?

来自分类Dev

SQL查询显示结果

来自分类Dev

连接SQL查询的结果

来自分类Dev

SQL空查询结果

来自分类Dev

SQL查询的ORDER BY结果

来自分类Dev

SQL查询重复结果

来自分类Dev

SQL查询结果结构

来自分类Dev

SQL查询结果重复

来自分类Dev

SQL查询-限制结果