Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在使用实体框架选择子对象列表时,如何获取对相关父对象的引用_C#_Entity Framework_Entity - Fatal编程技术网

C# 在使用实体框架选择子对象列表时,如何获取对相关父对象的引用

C# 在使用实体框架选择子对象列表时,如何获取对相关父对象的引用,c#,entity-framework,entity,C#,Entity Framework,Entity,使用EF访问子对象列表时如何访问父属性中的值 i、 e.我有一个项目对象和时间表对象 计划 身份证件 名称 时间表 投射 用户ID 日期 时间开销 我知道如何取回一个项目及其相关的时间表,但如果我想取回给定用户的所有时间表,然后简单地在每个时间表记录中显示项目名称,该怎么办 e、 g.项目名称、日期、时间支出 最佳做法是创建一个新实体以形成该结果集,还是只返回IEnumerable并访问.Project.Name字段 使用Linq to Sql或直接使用ADO.net/SPs等都非常简单,但

使用EF访问子对象列表时如何访问父属性中的值

i、 e.我有一个项目对象和时间表对象

计划 身份证件 名称

时间表 投射 用户ID 日期 时间开销

我知道如何取回一个项目及其相关的时间表,但如果我想取回给定用户的所有时间表,然后简单地在每个时间表记录中显示项目名称,该怎么办

e、 g.项目名称、日期、时间支出

最佳做法是创建一个新实体以形成该结果集,还是只返回IEnumerable并访问.Project.Name字段

使用Linq to Sql或直接使用ADO.net/SPs等都非常简单,但在EF上这会让我非常痛苦


有什么想法吗?

孩子们总是和他们的父母有关系。在您的例子中,它可能被称为类似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。