动态选择哪个表中插入数据与实体框架(Dynamically select which table t

2019-10-20 16:13发布

所以我写这需要在运行时选择一个实体,并通过实体框架添加此保存到数据库的应用程序,我创建通过使用ADO.NET实体数据模型的基础关闭它的数据库和模型,的对象,保持被选择baised对在与使用反射类的运行时被添加的数据的数据,如下所示;

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

我怎样才能做这样的事情来选择要使用的实体,是我可以做这样的事情:

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

谢谢

Answer 1:

你可以得到DbSet通过实体类型:

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


Answer 2:

您可以使用通用的设置 ,并创建一个通用的方法。

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);


文章来源: Dynamically select which table to insert data into with entity framework