2016-09-24 7 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; } 

内のすべての従業員のリストを表示するには結構ですデータベース、しかし私のコントローラや方法で私はlamdaを使用していますか?私は、manager.csでメソッド()を作成し、その中でlambdasを使用してオブジェクトを返すと、基本的には固執しています。これをインデックスビューでどのように呼び出すのですか?最後の名前がソートされるようにページが読み込まれるときに、私が望むように。どんな助けもありがとうございます。

+0

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

+0

ああ、ありがとうございました。もう1つの質問...もし私が列の1つに特定の値を持つ従業員だけを表示したいのであれば、store9というトップのリンクをユーザーがクリックすると店舗番号(つまり/ 9)これは同じindex()で行われますか?私は、上記のような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

私はEmployeeGetAllCana​​dians()関数を持っていて、countryIDで従業員をフィルタリングしたいと言っています。私はトップに「カナダの従業員」と表示されたリンクを追加しなければならないでしょう。私はindex()ビューで2つの異なる結果を返す方法がわかりません – 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)のようにEmptyeeGetAllにcountryIdを渡す必要があります.OrderBy(e = > e.LastName);} –

関連する問題