使用实体框架选择子对象列表时如何获取对相关父对象的引用
-
08-07-2019 - |
题
使用 EF 在访问子对象列表时如何访问父属性中的值。
IE。我有一个项目对象和时间表对象
项目
ID
姓名
...
时间表
项目编号
用户身份
日期
所花费的时间
...
我了解如何取回项目及其相关时间表,但如果我想取回给定用户的所有时间表,然后只需在每个时间表记录中显示项目名称,该怎么办?
例如项目名称、日期、花费时间
最佳实践是创建一个新实体来塑造该结果集,还是我应该能够返回 IEnumerable 并访问 .Project.Name 字段。
使用 Linq to Sql 或直接使用 ADO.net/SP 等非常简单,但它在 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
};
不隶属于 StackOverflow