2016-09-24 3 views
-2

해결할 수없는 문제에 봉착했습니다. 내가하고 싶은 일은 그들의성에 의해 데이터베이스에 정렬 람다를 사용하는 것입니다.MVC5에서 C#으로 LINQ 사용

EmployeesController :

public ActionResult Index() 
    { 
     return View(m.EmployeeGetAll()); 
    } 

manager.cs :

public IEnumerable<EmployeeBase> EmployeeGetAll() 
    { 
     //use automapper to map objects, source to target 
     return mapper.Map<IEnumerable<Employee>, IEnumerable<EmployeeBase>>(ds.Employees); 
    } 

데이터베이스 값 : 모든 직원의 목록을 보여 괜찮 위의 방법으로

[Required] 
    [StringLength(20)] 
    public string LastName { get; set; } 

db,하지만 내 컨트롤러 또는 메서드에서 나는 lamda를 사용합니까? 나는 기본적으로 manager.cs에서 method()를 만들고 그 안에 lambdas를 사용하여 객체를 반환하면 인덱스 뷰에 대해 이것을 어떻게 호출합니까? 마지막 이름을 정렬하기 위해 페이지가로드 될 때 원하는대로. 어떤 도움을 주셔서 감사합니다.

+0

'EmployeeGetAll()있는 OrderBy (X => x.LastName)' –

+0

아, 감사합니다.. 또 다른 질문은 ... 만약 사용자가 store9라고하는 상단의 링크를 클릭하면 매장의 # (예 :/"9")로 열의 특정 값을 가진 직원 만 표시하려고한다면 어떻게 될까요? 동일한 색인()에서이 작업을 수행 할 수 있습니까? 위와 같은 Index() 메소드가 여러 항목을 반환하는 여러 람다를 어떻게 수행하는지 이해하지 못하는 것 같습니다. – 13design

+0

조금 불분명해서 죄송합니다 – 13design

답변

0

나는 이런 식으로, 당신은 데이터베이스 수준으로 정렬해야한다고 생각 :

public IEnumerable<EmployeeBase> EmployeeGetAll() 
    { 
     var all=ds.Employees.OrderBy(e=>e.LastName); 
     //use automapper to map objects, source to target 
    return mapper.Map<IEnumerable<Employee>, IEnumerable<EmployeeBase>>(all); 
    } 
+0

countryID로 직원을 필터링 한 EmployeeGetAllCanadians() 함수도 갖고 싶다고 말합니다. 나는 "캐나다 직원"으로 표시된 맨 위에 링크를 추가해야 할 것입니다 .... 어떻게 그렇게 할 것입니까? 나는 인덱스()보기에서 두 가지 다른 결과를 반환하는 방법을 모르겠다 – 13design

+0

예 : public ActionResult Index() { return view (m.EmployeeGetAll()); } – 13design

+0

EmployeeGetAll (int? countryId) {var all = ds.Employees.Where (e =>! countryId.HasValue || countryId.Value == e.CountryId)와 같은 EmplyeeGetAll에 countryId를 전달해야합니다 .OrderBy (e = > e.LastName);} –