.net core DataTable.Load()方法,返回的行缺少,少于reader读出的行

发布时间 2023-12-07 11:27:38作者: HelloLLLLL

 

我分析的原因是,datatable模式的schema默认是根据查询的sql来的。起因是我写的sql中带有主键的列,查出来有很多重复值,
然后dt.load会默认把主键重复的行给合并掉,所以最终查询出来的都是主键不重复的数据行,重复的行都被合并掉了,所以就缺失了。
另外,dt.load有个重载版本,我的理解是用来决定怎么去合并这个重复主键行,感觉并不能用重载版本解决问题。
我就从sql入手,把主键列换到用关联的其他表的逻辑外键列,在那个表可以是重复的,这样schema就那个就不是主键的模式了,就允许重复,问题就解决了。