2012-04-10 16 views
0

私はASP.NET MVCの調査を開始しました。最新のベータ版(すなわち4)を使用しています。私は、かなりCRUDのシナリオとは何かを正しく考えています。私のメインテーブル(タスク)は次のようになります -ASP.NET MVC - 外部キーの更新

タスクID(int型) 社員(int型) PROJECTID(int型) DEPTID(int型) コメント(varchar型) 日(日時) 時間(フロート)

TaskIDが主キーです。他の3つのIDはすべて参照テーブルへの外部キーです。

さまざまなチュートリアルの後、私はEntity Frameworkを使用してオブジェクトモデル(.edmx)を作成しました。次に、「Add ... Controller」を使用してコントローラを自動生成し、「Controller with read/write ...」テンプレートを選択しました。

すべて正常です。しかし、3つの外部キー列に、IDではなく参照テーブルの参照値を表示させたいと思います。私は本当にこれを達成するための "ベストプラクティス"の方法が何であるか分かりません。いくつかのオプションは私に起こる -

  1. EFでビューを作成してSQL Serverの
  2. でビューを作成します(これがどのように行われるかわからない)
  3. でLINQを使用してその場で基準値を見上げてコントローラ

おそらく他の方法があります。このシナリオでは、「ベストプラクティス」に関する経験豊富なMVCプログラムからお聞きしたいと思います。

答えて

2

は、プロパティにこの

public class TaskViewModel 
{ 
    public Task Task { get; set; } 
    public Dictionary<int, string> ProjectList { get; set; } 
    //rest of the Lookup Properties like DeptList, EmpList 
} 
public class Task 
{ 
    public int TaskId { get; set; } 
    public int projectId { get; set; } 
    //Rest of the properties 
} 

のようなものを持っていますそして、あなたはビューモデルを投入う

@model TaskViewModel 
@Html.DropDownListFor(m => m.Task.projectId, new SelectList(Model.ProjectList, "key", "value", Model.Task.projectId))%> 
+0

を使用することになりTaskViewModelクラスを持っていることを好むでしょうか?コントローラーで? –

関連する問題