使用EF如何在访问子对象列表时访问父属性中的值。
即。我有一个Project对象和Timesheet对象
项目的
标识
名称
...
的TimeSheet
专案编号
用户ID
日期
TimeSpent
...
我理解如何取回项目及其相关的Timesheets,但如果我想要取回给定用户的所有时间表,然后只显示每个时间表记录的项目名称,该怎么办。
e.g。 ProjectName,Date,TimeSpent
最佳做法是创建一个新实体来对该结果集进行整形,还是应该能够返回IEnumerable并访问.Project.Name字段。
使用Linq to Sql或者只是直接使用ADO.net/SPs等非常简单但是它在EF上杀了我..
有什么想法吗?
答案 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
};