繁体   English   中英

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

[英]How do get reference to a related parent object when selecting a list of child objects using entity framework

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

即我有一个项目对象和时间表对象

项目
ID
名称
...

时间表
项目编号
用户身份
日期
所花费的时间
...

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

例如ProjectName,Date,TimeSpent

最佳做法是创建一个新实体来调整结果集的形状,还是我应该只能够返回IEnumerable并获得对.Project.Name字段的访问权限。

使用Linq到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
        };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM