EF 查询视图出现重复数据
解决方案: 由多张表组成的视图,要加实体键。而且实体键组合要能确保唯一性。
个人理解:确保唯一性,一个或多个实体键,实现了复合主键或组合主键的效果。
这样查询是,延迟加载机制,才知道哪些需要重新从数据库中拿而不是缓存中。
在思考:实体键的字段可以不是某个表的主键!?只要能确保唯一性行,其实“实体键的组合”也相当于“唯一索引”了。
总结:在模型中,加一个或多个实体键,只要能确保唯一性就行。
相关文章:
EF 查询视图返回重复数据的问题
http://www.mamicode.com/info-detail-2253463.html
在特殊的情况下查询过滤视图 会出现重复的数据结果集(返回的多条数据结果一致)。
原因是啥:主键
在数据库设计的理念中:每个表都应该的唯一的主键。但视图不同,EF中会自动按视图的最前几个非空型字段设置为主键。
如果在某些特殊的查询情况下。前几列数据一致时,EF就会返回重复数据。
解决方案:
1. 在使用的视图后 加入 AsNoTracking 阻止EF缓存数据集。(EF会依据主键建立数据缓存,实现后续的级联操作)。
2. 修改视图列顺序,将能区分内容的列放入最前列中,并保证为非空类型。
建议使用第二方案。
树立目标,保持活力,gogogo!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具