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

时间:2009-09-17 11:28:48

标签: c# entity-framework entity

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

即。我有一个Project对象和Timesheet对象

项目
标识
名称
...

的TimeSheet
专案编号
用户ID
日期
TimeSpent
...

我理解如何取回项目及其相关的Timesheets,但如果我想要取回给定用户的所有时间表,然后只显示每个时间表记录的项目名称,该怎么办。

e.g。 ProjectName,Date,TimeSpent

最佳做法是创建一个新实体来对该结果集进行整形,还是应该能够返回IEnumerable并访问.Project.Name字段。

使用Linq to Sql或者只是直接使用ADO.net/SPs等非常简单但是它在EF上杀了我..

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

孩子总是和父母有关系。在你的情况下,它可能被称为“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
        };