繁体   English   中英

使用实体框架将记录插入表中

[英]Insert record into the table using Entity Framework

我有一个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);
 }

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

我建议你做这样的事情

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

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

即使正如您所说,“我想根据接收到的json对象在运行时决定实体”,您也需要使用表employees作为入口点。

因此,在上下文中添加DbSet<Employee> Employees

然后,如果必须动态确定要使用的实体,则可以使用反射在MyContext类型上搜索“ Employees”,然后使用所选的实体(可能使用动态实体)。 但是您通常只有有限的一组实体可以使用,那么为什么不写ifs选择与正确的实体一起使用呢?

顺便说一句,这感觉就像您在另一层或其他地方没有正确地构造事物

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM