Linux上的ASP.NET Core使用EF

时间:2017-04-07 20:11:05

标签: c# entity-framework asp.net-core

我使用带有SQL Server 2016的Entity Framework Core编写了一个带有ASP.NET Core MVC的Web应用程序。只要我在Windows(IIS)上托管网站,一切都运行良好。

最近,我尝试将应用程序发布到运行Centos 7.3的Root Server,其中包括SQL Server 2016(v.Next CTP 1.4)和.net core 1.1。

可悲的是,以下代码会导致严重问题:

return _context.StockData
            .Include(i => i.Stock).ThenInclude(i => i.StockIndex)
            .Where(w => w.Date == date)
            .AsNoTracking()
            .ToList();
  • Windows 10 + MSSQL(根服务器上的远程): 36 ms
  • Centos 7.3 + MSSQL(Root-Server上的本地): 40秒(!)

注意:表 StockData 有大约120k行,表 Stock 有大约1k行而 StockIndex 只有10行

SQL事件探查器 SQL Profiler 前2个请求来自Win10客户端,后2个查询来自linux上运行的根服务器。

似乎时间不会丢失在数据库查询本身上,而是在"解析"将db结果放入适当的c#对象中。关于如何解决这个问题的任何想法?

谢谢!

史蒂芬

0 个答案:

没有答案