Linq查询结果集比对应的sql语句查询结果集不一致,存在重复结果
来源:互联网 发布:狸窝dvd刻录软件 编辑:程序博客网 时间:2024/05/13 10:07
在MVC架构的基础上开发,当然少不了Linq的身影.
Linq的推出,让我们从结构化查询语言的语法中解放出来,它是建立在ado.net及C#的基础上,自动将Linq语句翻译成sql语句,同时将结果集返回.
相对于sql而言,Linq to sql在编译时就检查语法的正确性;而SQL语句则不同,通过拼接字符串的形式组合成我们需要的SQL语句,只有在运行时才能验证其正确性。
Linq语句看着逻辑清晰、语句简洁,然而在代码调试时却没有拼接字符串的sql语句那么直接、简单、易懂……
…..
扯得有点远啦,主要是想记录一下今天遇到的问题:发现Linq查询视图得到的结果集与转换后sql语句的结果集不一致,Linq结果集中的Count数量大于SQL查询的结果集,即Linq结果集中存在重复数据!!!
eg:Linq语句
var users=from b in VUserInfo---VUserInfo为视图
where b.CustGuid.Equals('4dc41e6b-0a1d-4a29-b6e2-6dddb987f320')
select b;
结果集为
列1 CustGuid
1 001 4dc41e6b-0a1d-4a29-b6e2-6dddb987f320
2 002 4dc41e6b-0a1d-4a29-b6e2-6dddb987f320
3 002 4dc41e6b-0a1d-4a29-b6e2-6dddb987f320(存在重复数据,与上述数据完全一致)
如果采用sql语句查询:select * from VUserInfo where CustGuid='4dc41e6b-0a1d-4a29-b6e2-6dddb987f320'
结果集为
列1 CustGuid
1 001 4dc41e6b-0a1d-4a29-b6e2-6dddb987f320
2 002 4dc41e6b-0a1d-4a29-b6e2-6dddb987f320(此结果集正确)
那么可以通过users.Distinct()去重得到准确的结果集;
出现这种问题的原因待研究,暂时记录一下吧。
- Linq查询结果集比对应的sql语句查询结果集不一致,存在重复结果
- T-SQL语句的拼接后,查询结果集
- 查询结果分页显示的SQL语句
- 查询结果分页显示的sql语句
- 任意一条查询sql转换为查询结果集对应的数目
- HQL和SQL查询的结果不一致问题!!!
- 导出结果跟查询结果不一致
- sql语句查询,分批显示查询结果
- SQL判断查询结果是否存在EXISTS
- SQL语句中一个查询结果集作为另一个查询的范围
- result结果集 和sql语句中的对应的column
- SQL多表查询结果返回实体结果集
- update 查询结果集
- 查询语句之Union联合结果集
- Mybatis中$和#的注入使得在控制台写的sql语句和数据库写的语句查询结果不一致。
- sql语句查询结果合并unionall用法
- SQL语句查询结果转excel
- Oracle分组查询结果SQL语句
- LeetCode | Unique Binary Search Trees II(构建二叉搜索树)
- Objective-C block
- OC中语法糖,最新语法总结
- MySQL 命令集
- Linux进阶——Linux中查看CPU信息
- Linq查询结果集比对应的sql语句查询结果集不一致,存在重复结果
- OC简便语法 语法糖
- HDU 1158 Employment Planning (DP)
- SQL存储过程实现分页
- 快逸V5数据源配置
- 黑马程序员 java学习笔记(day09)
- hdu 4939 Stupid Tower Defense DP
- 大律法(OTSU法)
- 学习v$sql,v$sqlarea,v$sqltext,v$sqlstats和v$sql_plan