我有一个项目,它从数据库中查找不同的订单。然后,它从返回的orders中的一个字段创建一个CustomerNumbers字符串。然后基于CustomerNumbers对订单进行过滤。问题是,只有当有10个客户时,才会返回2个客户。我确实返回了所有客户的数量&这也只返回2个客户。数据库中共有667K+客户。我试着卸载EF nuget软件包&重新安装。我检查了一下,以确保我已经安装的存储库没有过滤任何东西。我被卡住了&就在枪下。任何帮助都会很好。此外,任何重构建议或EF的改变也是欢迎的。谢谢!
var count = dbCustomer.Records.Count();
var orders = dbOrders.Records.ToList();
data.Orders = orders;
var orderCustomerNumbers = data.Orders.Select(o => oMeta15).Distinct().ToList();
var orderNumbers = data.Orders.Select(o => o.OrderNumber.ToLower()).ToList();
data.Customers = dbCustomer.Records.Where(c => orderCustomerNumbers.Contains(c.CustomerNumber)).To.List();
data.Payments = dbPayment.Records.Where(p => orderCustomerNumbers.Contains(p.OrderNumber.ToLower())).ToList();
data.Products = dbProducts.Records.Tolist();发布于 2016-07-05 15:39:24
很抱歉没有透露更多细节,但我确实解决了这个问题。最初,我在使用应用程序(EF)将数据输入数据库时遇到了问题。为了解决这个问题并继续前进,我使用SSMS导入数据。由于我没有使用应用程序(EF),所以导入数据时,判别器列从未被填充过数据。因此,仅返回的两行是在判别器列中具有正确值的行。在运行快速SQL语句以使用正确的鉴别器值更新所有行之后,现在一切正常。
https://stackoverflow.com/questions/38104619
复制相似问题