是否有可能在运行时将类型传递给IQueryable来实现。在运行时向IQueryable传递类型
一样,
//Get type at runtime
Type type = Type.GetType("fully qualified class name");
IQueryable<type> test = // <-returned object of this type
实际的问题如下: 下面我能够获得与特定类型的右侧的对象,但不是铸造查询类型的变量。我也会知道类型的查询。
Dictionary<string, Type> myDictionary = new Dictionary<string, Type>()
{
{ "tableName", typeof(tableName) }
};
//Below I am able to get right side object with specific type, but that is not casting to type of query variable. Also I will have known type for query.
IQueryable<Type> query= EFContext.Set(myDictionary[tableName]).AsQueryable();
后来使用这个查询对象来动态地传递select/where条件来选择数据。
var data = query.Select(x=> new
{
id= x.id,
name= x.name .. etc
}).ToList();
后来我需要用这个测试变量来动态查询数据。
也请建议任何替代方案来解决这种情况。
不是这样的,没有。你可以制定一个通用的方法,但没有上下文就无法说清楚。 –
试图做到这一点表明您的程序结构存在较大的问题。你在这里的最终目标是什么? – MrZander
我认为你可以,但是你的服务层变得非常复杂,因为你需要动态地将一个类型与一个仓库(表)进行映射。另外,处理导航属性变得非常复杂。 – Sparrow