dotnetcore / sharding-core

high performance lightweight solution for efcore sharding table and sharding database support read-write-separation .一款ef-core下高性能、轻量级针对分表分库读写分离的解决方案,具有零依赖、零学习成本、零业务代码入侵
https://xuejmnet.github.io/sharding-core-doc/
Apache License 2.0
1.17k stars 171 forks source link

对分片数据查询时返回指定字段不包含ID的情况下会导致重复 #254

Closed warcraft007 closed 1 year ago

warcraft007 commented 1 year ago

1 2 3

实例中测试使用同样的分片表和同样的条件进行查询; 图2中可以看到返回的指定字段(不包含ID)的情况下,数据全是重复的第一条数据; 图3中可以看到返回的所有字段的情况下,数据就没有重复;

xuejmnet commented 1 year ago

应该是你的id是guid不能为null,然后查询又是追踪查询导致的,如果使用追踪查询那么id一样的数据会被认为是同一条,你的guid没有赋值又不能为null所以都是000-000-00,就导致了efcore认为是同一个数据库对象,所以不会添加新对象,解决办法有三种: