linq查询以员工方式获取数据

时间:2014-04-17 13:40:13

标签: linq

emp_master:

EMPID,empname

我有一个名为

的表

employee_travel

travelid       empid         location     date

1               101             abc        3/4/2014

2               102             lmn        4/4/2014

3               101             abc        5/4/2014

4               102             lmn        6/4/2014

5               101             xyz        7/4/2014

6               102             cdf        8/4/2014    

现在我想像员工那样显示员工记录:

empid       location      date

101          abc           --

101          abc            --

101          xyz        

102          lmn

102          lmn

102          cdf

我在linq中写了以下查询:

 var data = (from r in context.employee_travel

                        group r by new
                        {
                            r.Emp_id
                        } into g
                        select new
                        {
                            name = r.emp_master.empname,
                              r.date,
                            r.location

                        })

但它在这一行上给我错误:

                     ****name = r.emp_master.empname,
                              r.date
                            r.location****

这里{name在查询中用作自治类型是我的gridview **的d ** atatextfield的名称。}

任何人都可以编辑我的linq查询以满足我的需求????

请帮助我。我对linq非常新,所以我不知道如何编写这个查询。

1 个答案:

答案 0 :(得分:0)

from et in employee_travel
orderby et.empid
select new 
{ 
Employee = et.Employee,
TravelRecord = et, //if you want objects
Name = et.Employee.Name,
Date = et.Date //if you want simple types
}

在该示例中,我选择返回实体,但您当然可以返回姓名,日期等。如果需要,您可以添加更多订购。

或者您可以获取employee_travel实体并添加employee(确保您拥有正确的包含属性名称)

db.employee_travel.Include("employee").OrderBy(et=>et.empid).ToList()