C# 在使用实体框架选择子对象列表时,如何获取对相关父对象的引用
使用EF访问子对象列表时如何访问父属性中的值 i、 e.我有一个项目对象和时间表对象 计划 身份证件 名称 时间表 投射 用户ID 日期 时间开销 我知道如何取回一个项目及其相关的时间表,但如果我想取回给定用户的所有时间表,然后简单地在每个时间表记录中显示项目名称,该怎么办 e、 g.项目名称、日期、时间支出 最佳做法是创建一个新实体以形成该结果集,还是只返回IEnumerable并访问.Project.Name字段 使用Linq to Sql或直接使用ADO.net/SPs等都非常简单,但在EF上这会让我非常痛苦C# 在使用实体框架选择子对象列表时,如何获取对相关父对象的引用,c#,entity-framework,entity,C#,Entity Framework,Entity,使用EF访问子对象列表时如何访问父属性中的值 i、 e.我有一个项目对象和时间表对象 计划 身份证件 名称 时间表 投射 用户ID 日期 时间开销 我知道如何取回一个项目及其相关的时间表,但如果我想取回给定用户的所有时间表,然后简单地在每个时间表记录中显示项目名称,该怎么办 e、 g.项目名称、日期、时间支出 最佳做法是创建一个新实体以形成该结果集,还是只返回IEnumerable并访问.Project.Name字段 使用Linq to Sql或直接使用ADO.net/SPs等都非常简单,但
有什么想法吗?孩子们总是和他们的父母有关系。在您的例子中,它可能被称为类似TimeSheet.Project的东西。因此,您可以编写如下查询:
var q = from u in Context.Users
where u.UserId == userId
from ts in u.TimeSheets
select new
{
ProjectName = ts.Project.Name,
Date = ts.Date,
TimeSpent = ts.TimeSpent
};
谢谢因此,如果您使用的是存储库模式,您会将其投影到可以通过层传递的新实体中,还是只传递匿名类型?匿名类型很难返回。您的方法可能需要返回类似IQueryable的内容,因此对于存储库模式,在本例中,我建议返回IQueryable,并为此创建SomePOCO。