2017-08-14 15 views
0

私のコントローラには以下のようなInsert/Update/DeleteのJsonResultコードがあります。今私はIDとTableNameが渡され、更新されたTableNameからDeleteを渡すことが可能かどうか質問したいと思う。この方法でInsert Queryを書くこともできますか?Entity Frameworkを使用してmvc内の動的テーブル名内に挿入/削除/更新します

ので、私のするJsonResultは、このようなものです: -

public JsonResult DeleteFromTable() 
    { 
     int IDtoDelete = Convert.ToInt32(Request.Form["itemId"]); 
     string MyTableName = Convert.ToString(Request.Form["TblName"]); 

     try 
     { 

      Type tableType = typeof(CourseDesc); 
      switch (MyTableName) 
      { 
       case "CourseTbl": 
        tableType = typeof(CourseTbl); 
        break; 
       case "CourseDescTbl": 
        tableType = typeof(CourseDesc); 
        break; 
       case "CourseSubDesc": 
        tableType = typeof(CourseSubDesc); 
        break; 
       case "InternTbl": 
        tableType = typeof(InternShip); 
        break; 
       case "ContactTbl": 
        tableType = typeof(Contact); 
        break; 
      } 

      using (EBContext db = new EBContext()) 
      { 
       // Want To Add Insert/Update/Delete Code here. 


       return new JsonResult { Data = results, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
      } 

     } 
     catch(Exception ex) { 
      string innerMessage = (ex.InnerException != null) ? ex.InnerException.Message : ""; 
      return new JsonResult { Data = "Not Found", JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
     } 
    } 

私が把握することはできませんどのような挿入/更新/削除のためのEFクエリを作成する方法です。助けてください!!

+0

わからないけど私はあなたがdb.DbSet(tableName)と言うことができると信じています –

+0

私に例を教えてください。 – Deepak

答えて

0

私はあなたのケースのためにこのアプローチを持っている:まず、私のような汎用的なクラスを作成します。

internal class UtilityMethods<TEntity, Tid> where TEntity : class 
    { 
     public static bool InsertEntity(Entities dbContext, TEntity entity) 
     { 
      dbContext.Entry(entity).State = EntityState.Added; 
      dbContext.Set<TEntity>().Add(entity); 

      dbContext.SaveChanges(); 

      return true; 
     } 
    } 

その後、私は、私は次のように取り扱っておりますクラスに基づいて、この静的メソッドを使用します。

case "CourseTbl": 
    results = UtilityMethods<CourseTbl, int>.InsertEntity(dbContext, myObject); 
break; 
+0

あなたの返事をありがとう。そのクラスの「myObject」を渡す方法を教えてください。 – Deepak

+0

上記のコードでは、 'myObject'はデータベースに挿入したい' CourseTbl'のインスタンスオブジェクトです。 – Hadee

+0

私はそれを得ました。しかし、あなたは削除の例を私に提供できますか? – Deepak

関連する問題