首页 / C# / c# – Linq输出乘以结果
c# – Linq输出乘以结果
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – Linq输出乘以结果,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1723字,纯文字阅读大概需要3分钟。
内容图文
![c# – Linq输出乘以结果](/upload/InfoBanner/zyjiaocheng/781/771f921c8ea34e379b0307a541edfe1d.jpg)
我有一个像这样的简单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
我尝试更改table1和表2以进行正确的连接,但我有相同的结果.
我需要做什么linq查询才能在SQl中得到相同的结果?
P.S EF,Linq,Asp.net,Web Forms
解决方法:
LINQ等效的SQL查询是:
from thir in repository.table2
join post in repository.table1 on thir.C_LGT equals post.[idGK]
where post.mcod == 41003
因此,假设您的SQL是正确的(即table1.mcod是数字类型而不是字符串),那么它应该工作.
编辑:
您可以尝试这样来查看SQL EF从LINQ生成的内容.它可能有助于诊断问题.
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输出乘以结果全部内容,希望文章能够帮你解决c# – Linq输出乘以结果所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。