c# - 使用左连接 lambda 的 Entity Framework 加载数据

标签 c# entity-framework linq asp.net-core .net-core

我想从一个特定的 id 加载列表,其中包含 lambda 的详细信息。

我用下面的代码试了一下:

// 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)));
}

代码有效,但效率不高。如何使用 lambda 在一个请求中完成?

提前致谢。

最佳答案

我有点盲目,因为我不知道你所有的模型关系,但你可以在下面找到我认为是你的模型,如果你编辑你的问题,我也许可以给你一个准确的答案:

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;

关于c# - 使用左连接 lambda 的 Entity Framework 加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55695318/

相关文章:

c# - 使用代码将日期分配给 TextBox textmode ="date"

c# - Expression<Func<T,V>> Entity Framework 计算字段

sql-server - PM scaffold-dbcontext 未创建主键

c# - 向 IQueryable 追加附加查询部分

c# - 本地化 asp.net 下拉列表

c# - 在窗口出现之前拦截并隐藏它

c# - 什么是 linq "best practices"

c# - 将对象列表转换为表格结构

c# - 每隔两行更改一次的方程式

wcf - 通过 WCF 交付 EF 模型的最佳方式是什么?