2014-01-29 39 views
2

當前代碼列出每個部門名稱,並且我可以瀏覽在部門中工作的每個員工。我如何通過輪班過濾?我使用任何類型的where語句都沒有成功。如何從「包含」表中篩選?

我有兩個型號:

public class Department 
{ 
    public int DepartmentID { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 

    public List<Employee> Employee { get; set; } 
} 

員工

public class Employee 
{ 
    public int EmployeeID { get; set; } 
    public string LastName { get; set; } 
    [Display(Name = "First Name Middle Initial")] 
    public string FirstMidName { get; set; } 
    public DateTime HireDate { get; set; } 
    public string Shift { get; set; } 
    public int DepartmentID { get; set; } 
    public string FullName 
    { 
     get 
     { 
      return LastName + ", " + FirstMidName; 
     } 
    } 
    public virtual Department Department { get; set; } 
} 

控制器

public ActionResult Index() 
{ 
    var department = db.Department.OrderBy(d => d.Name).ToList(); 
    return View(department); 
} 

public ActionResult Browse(string department) 
{ 
    // Retrieve Department and its Associated Employees from database 
    var deptModel = db.Department.Include("Employee") 
    .Single(g => g.Name == department); 

    return View(deptModel); 
} 
+0

你想列出員工屬於一個特殊的轉變? – Shyju

+0

我猜你正在使用實體框架?如果是這樣,你可以使用關係修復。我剛纔問了一個關於它的問題,這裏是鏈接:http://stackoverflow.com/questions/19012116/fetch-entity-framework-objects-with-partially-loaded-collections –

+0

是的,我使用實體框架,上面的索引方法功能列出每個部門名稱,瀏覽方法池屬於該部門的員工。我想只顯示「第一」班員工。 – Hugh

回答

0

,你可以在那裏添加到您的拉姆達

var department = db.Department.Where(d => d.Name == "Filter Item Here").OrderBy(d => d.Name).ToList(); 
+0

好吧,如果這是他想要的,我想我誤解了這個問題:P –

+0

他說他使用任何一種聲明都沒有成功,所以我就這樣回答 –

+0

是的,我誤解了,並且認爲他想過濾部門內部的員工,這種情況下,我的答案會有所幫助。如果他只是想過濾部門,那麼你的答案是正確的。 –

0

的inital目的是在控制器中過濾此,我結束了從查看過濾。 @foreach (var employee in Model.Employee.Where(s => s.Shift == "1st")) { <li> </li> }

我將繼續在此工作並更新一次完成任務。