我发现如果我们使用
,我们可以编写自定义linq查询dbContext.set<MyEntity>()
但不能
dbContext.set(SomeType).
我有一个上下文类EGEntities,我有一个实体说&#34;员工&#34;。 如何将员工类型实体分配给MyEntity?这样我就可以创建一个可查询的Employee实例?
var instance = Activator.CreateInstance(thisType);
GetEntityTemplate(instance, thisType);
// Just to Test
public static List<Object> GetEntityTemplate<T>(T instance,Type targetType) where T :class
{
var Context = new EGEntities();
var set = Context.Set<T>();
if (set == null)
{
throw new Exception();
}
List<object> l = null;
return l;
}
但不知道为什么要设置&#39;只是寻找对象&#39;例外是&#34;模型不是当前的背景&#34;虽然实例正确地在参数中携带类实例。
答案 0 :(得分:0)
DbContext.Set()
方法正在进行另一个(非泛型)重载,期望System.Type
:
var employeesSet = dbContext.Set(typeof(Employee));
如果您已经引用了Employee
的现有实例:
var employeeType = myEmployee.GetType();
var employeesSet = dbContext.Set(employeeType);
请参阅MSDN