我有一个应该在差异集上运行的查询,如何在查询中为每种类型更改dbset
我的尝试:
using (TestContext rpContext = new TestContext(connectionString))
{
IEnumerable<TargetType> query = null;
dynamic TargetSet = null;
switch (basicDefinitionType)
{
case MyEnumType.MySet:
TargetSet = Convert.ChangeType(TargetSet, typeof(DbSet<MySet>));
TargetSet = rpContext.MySet;
break;
default:
throw new Exception("can not detect type");
}
var q = from r in TargetSet
where (nodeId == null ? r.ParentId == null : r.ParentId == nodeId)
orderby r.Code
select r;
query = (IEnumerable<TargetType>)q.ToFullyLoaded();
return query;
}
}
答案 0 :(得分:0)
您可以使用DbSet作为csharpfolk提及,但这可能是repository pattern可以使您的代码更具可读性和可维护性的情况。在内部,存储库模式应该使用DbSet,但它会从使用它的代码中抽象出来。