gpt4 book ai didi

c# - Linq输出相乘结果

转载 作者:行者123 更新时间:2023-11-30 12:22:18 26 4
gpt4 key购买 nike

我有一个像这样的简单 SQL 查询:

SELECT table1.[idGK]  , table2.FullName , table2.LgotName
from table2
join table1 on table2.C_LGT = table1.[idGK]
where table1.mcod = 41003

我有正确的输出:

idGK | FullName| LgotName 
------------------------
1 |One |Ball
2 |Two |Wog
3 |Three |Aks
5 |Four |Mqi
7 |Five |Thel
9 |Six |Imx

但是当我对此进行 LINQ 查询时:

IEnumerable<FinalDoc> fidn = from post in repository.table1
join thir in repository.table2 on post.idGK equals thir.C_LGT
where post.mcod.Trim().Contains("41003")

orderby post.idGK

select new FinalDoc
{
mcod = post.mcod,
FullName= thir.FullName,
idGK = post.idGK
};

我有这样的结果:

    FullName  | LgotName 
------------------------
Five |Thel
Five |Thel
Five |Thel
Five |Thel
Five |Thel
Five |Thel

我尝试更改表 1 和表 2 以进行右连接,但结果相同。
我需要执行什么 linq 查询才能获得与在 SQl 中相同的结果?
P.S EF , Linq , Asp.net , Web Forms

最佳答案

您的 SQL 查询的 LINQ 等效项是:

from thir in repository.table2
join post in repository.table1 on thir.C_LGT equals post.[idGK]
where post.mcod == 41003

因此假设您的 SQL 是正确的(即 table1.mcod 是数字类型而不是字符串)那么它应该可以工作。

编辑:您可以试试看从您的 LINQ 生成什么 SQL EF。它可能有助于诊断问题。

var query = from post in repository.table1
join thir in repository.table2 on post.idGK equals thir.C_LGT
where post.mcod.Trim().Contains("41003")

var sql = ((System.Data.Objects.ObjectQuery)query).ToTraceString();

关于c# - Linq输出相乘结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41301823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com