What is the effect of AsEnumerable() on a LINQ Entity?
阅读这里和这里的问题让我对这种情况有了一些了解,而且使用无数似乎是在消耗记忆。有没有更好的方法来完成这个LINQ,现在的方法,得到的数据是否可靠?
删除"本地序列不能用于查询运算符的Linq to SQL实现中,但包含运算符除外。"
1 2 3 4 5 6 7 8 9 10 11 12 | var results = from p in pollcards.AsEnumerable() join s in spoils.AsEnumerable() on new { Ocr = p.OCR, fileName = p.PrintFilename } equals new { Ocr = s.seq, fileName = s.inputFileName } where p.Version == null orderby s.fileOrdering, s.seq select new ReportSpoilsEntity { seq = s.seq, fileOrdering = s.fileOrdering, inputFileName = s.inputFileName, Ocr = p.OCR, ElectorName = p.ElectorName }; |
更多信息,请参阅我的Edulinq博客文章。
现在你实际上有两个电话打给
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var results = from p in pollcards join s in spoils on new { Ocr = p.OCR, fileName = p.PrintFilename } equals new { Ocr = s.seq, fileName = s.inputFileName } where p.Version == null orderby s.fileOrdering, s.seq select new ReportSpoilsEntity { seq = s.seq, fileOrdering = s.fileOrdering, inputFileName = s.inputFileName, Ocr = p.OCR, ElectorName = p.ElectorName }; |
使用asenumerable将中断查询,并将"外部部分"作为对象的LINQ而不是SQL的LINQ。实际上,您正在为两个表运行"select*from…",然后执行联接、where子句筛选、排序和投影客户端。
在实体框架中使用