gpt4 book ai didi

c# - Entity Framework 性能问题

转载 作者:太空宇宙 更新时间:2023-11-03 19:58:23 25 4
gpt4 key购买 nike

我遇到了以下查询需要大约 700 毫秒才能执行的问题。它在一个循环中,被调用了 100 多次,所以它需要很长时间。

型号:

public class ReleaseDates
{
public int Id { get; set; }
public string MovieName { get; set; }
public string Country { get; set; }
public DateTime ReleaseDate { get; set; }
public string AlternateSource { get; set; }
}

查询:

public async Task<List<ReleaseDates>> GetReleaseDatesAsync(string movieName)
{
return await Db.ReleaseDates.Where(x => x.MovieName == movieName && string.IsNullOrEmpty(x.AlternateSource)).ToListAsync();
}

有什么建议可以加快速度吗?

最佳答案

摆脱循环。那就是问题所在。您正在向数据库发送大量查询。

将您要搜索的所有电影名称存储在一个列表中,并在其中进行包含。

public async Task<List<ReleaseDates>> GetReleaseDatesAsync(List<string> movieNames)
{
//movie names that you're searching for - movieNames

return await Db.ReleaseDates.Where(x => movieNames.Contains(x.MovieName) && string.IsNullOrEmpty(x.AlternateSource)).ToListAsync();

}

如果您想获取“Ant Moon”、“GodZippa”、“SuperWan”的发布日期,您的列表将包含这些字符串,就是这样。

进一步阅读:http://blogs.msdn.com/b/alexj/archive/2009/03/26/tip-8-writing-where-in-style-queries-using-linq-to-entities.aspx

关于c# - Entity Framework 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31051523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com