繁体   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