2017-02-16 10 views
0

私はMVC構造のEntity Frameworkを私のプロジェクトに使用しています。エンティティフレームワーク - 各テーブルの個別モデルが必要ですか?

EFはすべてのデータベースに関連する変更を管理し、「データベースからのモデルの更新」では最新のモデルになっています。

だから、私のテーブルごとに別々のmodel.csクラスを作成して、それをオブジェクトとして使用し、その中に値を設定する必要がありますか?

具体的には、 プロジェクト全体がAjaxコールを使用してすべての操作を行っています。 これらのAjaxコールでは、JSONのデータに値を渡しています。

コントローラレベルでは、そのJSONから値を取得する必要があります。
についてはどうすれば特定のテーブルのエンティティモデルを使用できますか?
テーブルごとにモデルを作成する必要はありますか?

モデルごとに自動的にモデルを生成できませんか?

更新日: 参照コードが追加されました。

1. 
Let's say 
I have a table Student with , StudentID INT, ClassID INT , Name VARCHAR(). 
2. 
Here is the JavaScript Code 
    function AddStudent() { 
    var data = { "ClassID": 1, "Name": 'ABC' } 

    $.ajax({ 
     url: '/Admin/AddNewStudent', 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     async: false, 
     cache: false, 
     data: JSON.stringify(data), 
     success: function (ServiceResponce) { 
      refreshgird(); 
     } 
    }); 
} 

    3. 
    StudentController.cs 

    public JsonResult AddNewStudent(Student obj) 
      { 
       try 
       { 
        var add = db.AddNewStudent(obj.ClassID, obj.Name).ToString(); 
        return Json(add, JsonRequestBehavior.AllowGet); 
       } 
       catch (Exception ex) 
       { 
        return Json(ex.ToString(), JsonRequestBehavior.AllowGet); 
       } 
      } 

4. Student.cs 
public class Student 
    { 
     public int ClassID{ get; set; } 

     public string Name{ get; set; } 
    } 

私の質問は、私は正しい方法を以下のかいないですStudent.csモデルを作成することですか?あなたのEFモデルはMVCプロジェクトに含まれている場合

+0

私はちょうどそれが私たちのモデルフォルダにEDMXでTableName.clsファイルを持っていることを知りたいです、それは良い練習かどうかですか? それを避ける方法を教えてください。 – ParthKansara

+1

Visual Studioによって提供される組み込みのテンプレートを使用してEFモデルとコンテキストを作成しようとしましたか?それは、あなたが直接使うために必要なクラスを作成します。データを表示するには、表示するデータに基づいてviewmodelクラスを作成することをお勧めします。 1つのビューモデルはdbクラスでのみ表現でき、複数のdbクラスを組み合わせることができます。 1つのdbクラスでのみCRUDを実行するビューがある場合は、1対1のビューモデルが理にかなっています。 –

+0

私はSpon_ResultクラスをEFで生成して使用する必要があります。あなたが話しているビルドテンプレートは、T4ですか? – ParthKansara

答えて

1
  1. ノーあなたがエンティティごとに別々のモデルを作成する必要はありませんと言うだろう - ちょうどEFによって作成されたものを使用します。

  2. MVCプロジェクトがデータ、ドメイン、プレゼンテーションの各レイヤー(プロジェクト)に分割されている場合、生成されたデータクラスを(データレイヤー内の)EDMXから分離し、ドメインレイヤーで生成できます。 Julie LermanによるPlural Sightのトレーニング「Entity Framework 5入門」「生成されたドメインクラスをEDMXファイルから分離する」の章を参照してください。

  3. 純粋な人は、少なくとも3つのレイヤー(データ、ドメイン、プレゼンテーション)が必要で、ドメインオブジェクトはEFによって生成されたものであってはなりません。必要に応じて、アプリケーションのニーズに合わせてカスタマイズし、EFオブジェクトからロードする必要があります。

関連する問題