Sev*_*Sev 0 c# linq linq-to-objects linq-to-sql
我从两个不同的存储库中检索数据:
List<F> allFs = fRepository.GetFs().ToList();
List<E> allEs = eRepository.GetEs().ToList();
Run Code Online (Sandbox Code Playgroud)
现在我需要加入他们,所以我做了以下事情:
var EFs = from c in allFs.AsQueryable()
join e in allEs on c.SerialNumber equals e.FSerialNumber
where e.Year == Convert.ToInt32(billingYear) &&
e.Month == Convert.ToInt32(billingMonth)
select new EReport
{
FSerialNumber = c.SerialNumber,
FName = c.Name,
IntCustID = Convert.ToInt32(e.IntCustID),
TotalECases = 0,
TotalPrice = "$0"
};
Run Code Online (Sandbox Code Playgroud)
如何使这个LINQ查询更好,以便它运行得更快?我将不胜感激任何建议.
谢谢
除非您能够创建一个包含两个数据的存储库,这将是一个非常优选的解决方案,否则我可以看到以下可能加速该过程的事情.
您可能无法将存储库合并为一个的原因可能是因为数据来自两个单独的数据库.
使用上述第1点和第2点更新的代码与此类似:
var allFs = fRepository.GetFs().Select(f => new {f.Name, f.SerialNumber}).ToList();
int year = Convert.ToInt32(billingYear);
int month = Convert.ToInt32(billingMonth);
var allEs = eRepository.GetEs().Where(e.Year == year && e.Month == month).Select(e => new {e.FSerialNumber, e.IntCustID}).ToList();
var EFs = from c in allFs
join e in allEs on c.SerialNumber equals e.FSerialNumber
select new EReport
{
FSerialNumber = c.SerialNumber,
FName = c.Name,
IntCustID = Convert.ToInt32(e.IntCustID),
TotalECases = 0,
TotalPrice = "$0"
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
354 次 |
最近记录: |