在使用 EF 从多个 table 获取数据时需要帮助
Need help in getting data from multiple table using EF
我正在使用此查询获取列表格式的详细信息,因为我也正在获取用户 ID。
reportProblemsList = objEntities.ReportProblems.ToList();
现在我想根据用户 table 的用户 ID 获取用户详细信息。所以我尝试了 foreach 循环,如下所示。
foreach(var item in reportProblemsList)
{
userdetails = objEntities.Users.Where(x => x.UserId == item.Userid).ToList();
}
现在我想将所有用户详细信息添加到列表中,然后访问它。下面是我的完整代码。
List<ReportProblem> reportProblemsList = new List<ReportProblem>();
List<User> userdetails = new List<User>();
reportProblemsList = objEntities.ReportProblems.ToList();
foreach(var item in reportProblemsList)
{
userdetails = objEntities.Users.Where(x => x.UserId == item.Userid).ToList();
}
reportProblemsList.Add(userdetails);
但无法让它工作..任何想法。
谢谢
我假设您需要一个报告问题的用户列表。
var userIds = objEntities.ReportProblems.Select(q=> q.Userid).ToList();
List<User> userdetails = objEntities.Users.Where(x => userIds.Contains( x.UserId)).ToList();
如果您的数据库是根据给定的信息正确设计的,那么您的 ReportProblem
对象很可能还具有类型 User
的 属性 User
。如果是这种情况,您可以指示 EF 核心通过执行以下操作在您的查询中包含此类嵌套属性:
var reportProblemsList = objEntities.ReportProblems
.Include(report => report.User)
.ToList();
如果你没有这个 属性 你必须创建一个匿名类型来保存元组:
var reportsWithUsers = objEntities.ReportProblems
.Join(objEntities.Users, r => r.UserId, u => u.UserId, (Report, User) => (Report, User)
.ToList();
我正在使用此查询获取列表格式的详细信息,因为我也正在获取用户 ID。
reportProblemsList = objEntities.ReportProblems.ToList();
现在我想根据用户 table 的用户 ID 获取用户详细信息。所以我尝试了 foreach 循环,如下所示。
foreach(var item in reportProblemsList)
{
userdetails = objEntities.Users.Where(x => x.UserId == item.Userid).ToList();
}
现在我想将所有用户详细信息添加到列表中,然后访问它。下面是我的完整代码。
List<ReportProblem> reportProblemsList = new List<ReportProblem>();
List<User> userdetails = new List<User>();
reportProblemsList = objEntities.ReportProblems.ToList();
foreach(var item in reportProblemsList)
{
userdetails = objEntities.Users.Where(x => x.UserId == item.Userid).ToList();
}
reportProblemsList.Add(userdetails);
但无法让它工作..任何想法。
谢谢
我假设您需要一个报告问题的用户列表。
var userIds = objEntities.ReportProblems.Select(q=> q.Userid).ToList();
List<User> userdetails = objEntities.Users.Where(x => userIds.Contains( x.UserId)).ToList();
如果您的数据库是根据给定的信息正确设计的,那么您的 ReportProblem
对象很可能还具有类型 User
的 属性 User
。如果是这种情况,您可以指示 EF 核心通过执行以下操作在您的查询中包含此类嵌套属性:
var reportProblemsList = objEntities.ReportProblems
.Include(report => report.User)
.ToList();
如果你没有这个 属性 你必须创建一个匿名类型来保存元组:
var reportsWithUsers = objEntities.ReportProblems
.Join(objEntities.Users, r => r.UserId, u => u.UserId, (Report, User) => (Report, User)
.ToList();