简体   繁体   English

实体框架使用左连接lambda加载数据

[英]Entity Framework load data with left join lambda

I want to load from a specific id the list include details with lambda. 我想从特定的ID加载列表,其中包括Lambda的详细信息。

I tried it with following code: 我用以下代码尝试了它:

// Load User Visitor list
var list = await Context.UserVisitors
                        .Where(s => s.UserId.Equals(userOwner.Id))
                        .Select(s => s.UserVisitorId)
                        .ToListAsync();

foreach (var t in list) 
{
     UserOwnerVisitors.Add(await Context.User
                                        .Include(u => u.Details)
                                        .Include(u => u.Settings)
                                        .FirstAsync(u => u.Id.Equals(t)));
}

The code works, but it is not efficient. 该代码有效,但是效率不高。 How I can do it in one request with lambda? 如何使用lambda在一个请求中做到这一点?

Thanks in advance. 提前致谢。

I am a little bit blind, as I don't know all your model's relationship, but below you can find what I think is your model, if you edit your question I can perhaps give you an exact answer: 我有点盲目,因为我不知道您所有模型的关系,但是在下面您可以找到我认为的模型,如果您编辑问题,我也许可以给您确切的答案:

var UserOwnerVisitorsList = from uv in Context.UserVisitors
                            join u in Context.User
                            on uv.UserId equals u.Id
                            join det in Context.Details
                            on det.UserId equals u.Id 
                            join set in Context.Settings
                            on set.UserId equals u.UserId
                            where uv.UserId == userOwner.Id
                            select u;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM