2014-04-02 41 views
0
public ActionResult NoOfLeaves() 
{ 
string CurrentUserID = User.Identity.GetUserId(); 
var result = (from u in db.LeaveTypes 
join s in db.LeaveDetails 
on new { id = u.LeaveTypeID } equals new { id = s.LeaveTypeID} 
join user in db.Users 
on new { id = s.EmpID } equals new { id = user.Id } 
where user.Id == CurrentUserID 
select new noOfLeavesView 
    { 
    EmployeeID = user.Id, 
    EmployeeName = user.Name, 
    LeaveTypeName = u.LeaveTypeName, 
    Issued = u.NoOfLeaves 

    });        
return View(result); 
} 

离开类型包含叶医学等类型。 “离开详细信息”包含用户使用的树叶历史。 我想知道用户应用了多少片医用叶片。计算列的元素数

+0

你的意思是你想按列和计算的结果? – nvoigt

+0

是...! @nvoigt –

+0

你需要更精确一点。一般来说,你可以使用'.GroupBy()'。你能提供样本输入和样本预期输出吗? – nvoigt

回答

0
public ActionResult NoOfLeaves() 
{ 
var result = (from u in db.LeaveTypes 
join s in db.LeaveDetails 
on new { id = u.LeaveTypeID } equals new { id = s.LeaveTypeID } 

select new noOfLeavesView 
{ 
LeaveTypeName = LeaveTypeId.LeaveTypeName, 
Issued = u.NoOfLeaves, 
Availed = (db.LeaveDetails.Where(i=>i.LeaveTypeID.Equals(s.LeaveTypeID)).Count()), 
}).Distinct(); 


      return View(result); 
     } 

从这样我得到所要求的结果...