使用Entity Framework将记录插入表中

时间:2016-08-25 14:19:13

标签: c# entity-framework reflection

我有一个DbContext对象,其中有一个名为“Employees”的表。

我有一个员工对象,我想插入Employees表。

我无法直接从上下文中使用Employees。我想使用表名访问:这可能吗?

 MyContext _ctx;
 Type employee = a.GetType("SC.Employee"));
 object employee = Newtonsoft.Json.JsonConvert.DeserializeObject(emp, employee);

 using (_ctx = new MyContext())
 {
     //I am trying to insert the employee object to my entity. But this doesn't work
     //_customCtx["Employees"].add(employee);
 }

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你想先将Json反序列化为一个Employee对象,然后将其保存到你的上下文中?

我建议你这样做

Employee myNewEmployee = JsonConvert.DeserializeObject<Employee>(json_string);

using (var _ctx = new MyContext())
{
   _ctx.Employee.Add(myNewEmployee);
}

答案 1 :(得分:0)

即使如你所说,我想根据我收到的json对象决定运行时的实体&#39;您需要将Employees表作为切入点。

所以在上下文中添加DbSet<Employee> Employees

然后,如果您需要使用的实体是动态确定的,您可以使用反射来搜索“员工”。在您的MyContext类型上,然后使用所选实体(可能与动态)。 但是你有一套有限的实体可以使用,那么为什么不写ifs选择合适的实体呢?

顺便说一句,感觉就像你没有在另一个层面或其他地方以正确的方式构建事物