EF 查询视图出现重复数据
解决方案: 由多张表组成的视图,要加实体键。而且实体键组合要能确保唯一性。
个人理解:确保唯一性,一个或多个实体键,实现了复合主键或组合主键的效果。
这样查询是,延迟加载机制,才知道哪些需要重新从数据库中拿而不是缓存中。
在思考:实体键的字段可以不是某个表的主键!?只要能确保唯一性行,其实“实体键的组合”也相当于“唯一索引”了。
总结:在模型中,加一个或多个实体键,只要能确保唯一性就行。

相关文章:
EF 查询视图返回重复数据的问题
http://www.mamicode.com/info-detail-2253463.html
在特殊的情况下查询过滤视图 会出现重复的数据结果集(返回的多条数据结果一致)。
原因是啥:主键
在数据库设计的理念中:每个表都应该的唯一的主键。但视图不同,EF中会自动按视图的最前几个非空型字段设置为主键。

如果在某些特殊的查询情况下。前几列数据一致时,EF就会返回重复数据。
解决方案:
1. 在使用的视图后 加入 AsNoTracking 阻止EF缓存数据集。(EF会依据主键建立数据缓存,实现后续的级联操作)。
2. 修改视图列顺序,将能区分内容的列放入最前列中,并保证为非空类型。
建议使用第二方案。
EF 查询视图出现重复数据的更多相关文章
- EF 查询视图返回重复数据的问题
在特殊的情况下查询过滤视图 会出现重复的数据结果集(返回的多条数据结果一致). 原因是啥:主键 在数据库设计的理念中:每个表都应该的唯一的主键.但视图不同,EF中会自动按视图的最前几个非空型字段设置为 ...
- mysql查询表里的重复数据方法:
INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from hk_test ...
- EF查询视图只得到一条记录
1.出错结果:数据库表视图有多条数据,在使用EF框架进行查询时却只得到一条数据(注:拦截EF得到的sql语句在数据库进行查询并没有任务问题). 2.出错原因:该视图中没有ID或者主键,EF查询时进行反 ...
- MySQL查询和删除重复数据
删除表中重复记录,只保留一条: delete from 表名 where 字段ID in (select * from (select max(字段ID) from 表名 group by 重复的字段 ...
- Oracle查询表里的重复数据方法:
一.背景 一张person表,有id和name的两个字段,id是唯一的不允许重复,id相同则认为是重复的记录. 二.解决 select id from group by id having count ...
- Oracle查询和过滤重复数据
对数据库某些意外情况,引起的重复数据,如何处理呢? ----------------查重复: select * from satisfaction_survey s and s.project_no ...
- Oracle查询表里的重复数据方法
select id from group by id having count(*) > 1 按照id分组并计数,某个id号那一组的数量超过1条则认为重复. 如何查询重复的数据 select 字 ...
- hibernate一对多关系 在一方查询会获得重复数据,重复数量就是多端数据数量用@Fetch(FetchMode.SUBSELECT)解决
先来看数据表 版块表只有两个数据 板块1是推荐,下边没有子栏目 板块2下边有14个子栏目 在1的一端来查询,发现结果有16条 也就是板块1+版块2+版块2和他的14个子集都列出来了,这明显不对 板块对 ...
- Oracle学习笔记(1)——查询及删除重复数据
1.查找表中多余的重复记录(根据单个字段studentid) select * from table_name where studentid in (select studentid fro ...
随机推荐
- 解决 'boost/iterator/iterator_adaptor.hpp' file not found’ 及控制台":CFBundleIdentifier", Does Not Exist
"react-native": "0.46.1" 这个问题产生原因: * /Users/Vanessa/.rncache 中 boost_1_63_0.tar. ...
- Mui Webview下来刷新上拉加载实现
有些事情经历过之后才会发现,原来再次之前我是如此的啥,因为是第一次做,毫无头绪,有时会想假如有个一demo就好了,那么就不会花费这么多的无用功了.今天使用mui 的webview实现了一个H5页面的上 ...
- typeof和instansof的区别
typeof typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型. 它返回值是一个字符串,该字符串说明运算数的类型.(typeof 运算符返回一个用来表示表达式的数据类型的字符串. ...
- Java中ArrayList学习笔记
1. 先看两段代码 这段代码在执行的时候会报 但是这样写就好着呢: 总结,研究报错的代码 ,在for循环的时候调用next()方法,next方法中调用了checkForComodification这个 ...
- 使用Scala IDE for Eclipse遇到build errors错误的解决办法
在编写第一个Scala语言的Spark程序时,在Scala IDE for Eclipse中运行程序时出现“Project XXXX contains build errors, Continue l ...
- [区块链|非对称加密] 对数字证书(CA认证)原理的回顾
摘要:文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用.接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的 ...
- vue项目使用websocket技术
一.为什么需要websocket? 前端和后端的交互模式最常见的就是前端发数据请求,从后端拿到数据后展示到页面中.如果前端不做操作,后端不能主动向前端推送数据,这也是http协议的缺陷. 因此,一种新 ...
- 【JDBC 笔记】
JDBC 笔记 作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 对应pdf版:https://download.csdn.net/download/qq_22430159/10754554 没有积分 ...
- 设计模式 | 外观模式/门面模式(facade)
定义: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 结构:(书中图,侵删) 一个简洁易用的外观类 一个复杂的子系统 实例: 书中提到了理 ...
- Iconfont 在HTML中的使用
一.准备阶段: a.进入阿里巴巴矢量图标库www.iconfont.cn挑选所需的图标,加入购物车 b.点击网页中的购物车下载代码 二.3种方法实现 Iconfont 的HTML显示 Unicode ...