【问题标题】:Dynamically select which table to insert data into with entity framework使用实体框架动态选择要插入数据的表
【发布时间】:2014-08-12 11:46:09
【问题描述】:

所以我正在编写一个应用程序,它需要在运行时选择一个实体并通过实体框架添加并将其保存到数据库中,我通过使用 ADO.NET 实体创建了数据库和基于它的模型数据模型,保存数据的对象是根据在运行时使用反射类添加的数据来选择的,如下所示;

                mytype = Type.GetType(objName);
                myObject = Activator.CreateInstance(mytype);

我该如何做这样的事情来选择要使用的实体,我可以做这样的事情吗:

                db.[MyEntity].Add(myObject);
                db.SaveChanges();

谢谢

【问题讨论】:

    标签: c# entity-framework asp.net-mvc-4 entity-framework-5


    【解决方案1】:

    您可以通过实体类型获取DbSet

    var set = db.Set(myObject.GetType());
    set.Add(myObject);
    db.SaveChanges();
    

    【讨论】:

    • 非常感谢,我尝试了代码并且效果很好
    【解决方案2】:

    您可以使用泛型Set 并创建泛型方法。

    public static class MyLibrary
    {
        public static void Add<T>(this DbContext db, T obj) where T : class
        {
            db.Set<T>().Add(obj);
        }
    }
    

    用法。

    db.Add(myObject);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      相关资源
      最近更新 更多