簡體   English   中英

使用實體框架在mvc中的動態表名稱中插入/刪除/更新

[英]Insert/Delete/Update inside a dynamic table name in mvc using Entity Framework

我為每個插入/更新/刪除都有一個JsonResult代碼,如下所示。 現在,我想問是否可以將Id和TableName傳遞給從傳遞的TableName更新和刪除。 還可以通過這種方式編寫插入查詢嗎?

所以我的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查詢。 請幫忙!!

對於您的情況,我有這種方法:首先,我創建一個通用類,如:

    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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM