我有一个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);
}
答案 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选择合适的实体呢?
顺便说一句,感觉就像你没有在另一个层面或其他地方以正确的方式构建事物