使用一个表中的id在子查询中使用Linq从另一个表中读取值

时间:2014-03-23 06:49:16

标签: c# mysql sql linq lambda

您好我有以下查询

 var lst=(from p in db.business 
        where p.id == id
        select new pO
        {
            pName = p.name,
            newStructure = p.p_disc.Select(x=>
                                            new newStructure 
                                            {
                                                post_date=x.post_date,  
                                                posted_by_id=x.person.last_name.Where(x.posted_by_id==x.person.p_id)
                                            })
                             });

newStructure类是

public class newStructureProject
{
        public int posted_by_id { get; set; }
        public System.DateTime post_date { get; set; }
        public person person  { get; set; }

}

在以下查询行中,我尝试在newStructure中使用posting_by_id来读取person表中的姓氏和名字。

posted_by_id=x.person.last_name.Where(x.posted_by_id==x.person.p_id)

我得到了智能错误"字符串不包含定义..... 请让我知道如何在我的查询中使用它来使用posted_by_id来读取人员表中的姓氏和名字,它们具有外键关系。 谢谢

1 个答案:

答案 0 :(得分:0)

尝试使用此姓氏。

posted_by_id=x.person.Where(x=>x.posted_by_id==x.person.p_id).Select(x=>x.last_name).FirstOrDefault()

您需要先在对象上应用where子句,然后选择所需的属性值。