C# 优化linq查询的更好方法
我在c#应用程序中编写了一个linq查询,以获取auth用户所属应用程序的名称C# 优化linq查询的更好方法,c#,linq,C#,Linq,我在c#应用程序中编写了一个linq查询,以获取auth用户所属应用程序的名称 var authApplicationRepository = AuthApplicationRepository.GetAllAsList(); var authUserRepository = AuthUserRepository.GetAllAsList(); 你认为有更好、更短的方法来结合这两条线吗 //Get the name of the application the auth user belong
var authApplicationRepository = AuthApplicationRepository.GetAllAsList();
var authUserRepository = AuthUserRepository.GetAllAsList();
你认为有更好、更短的方法来结合这两条线吗
//Get the name of the application the auth user belongs to
var authUserApplicationId = authUserRepository
.Where(x => x.Id == userChangeRequest.AuthUserId)
.Select(x => x.ApplicationId)
.FirstOrDefault();
var authUserApplicationName = authApplicationRepository
.Where(x => x.Id == authUserApplicationId)
.Select(x => x.Description)
.FirstOrDefault();
您可以更进一步,执行
authUserRepository.FirstOrDefault(x=>x.Id==userChangeRequest.AuthUserId)?.ApplicationId
这如何为我提供authUserApplicationName您仍然需要两个linq查询,但每个查询都更短。您可能可以将其减少为一个带有连接的查询,但是我不确定你能得到多少。什么类型的…存储库变量是由“GetAll…”方法返回的<代码>IQueryable
或inumerable
?如果您无法在存储库层“加入”用户和应用程序,您可以返回字典
,仅通过O(1)个操作即可找到所需的applicationId和相应的描述。