使用反射查询实体框架
本文关键字:实体 框架 查询 反射 | 更新日期: 2023-09-27 17:57:24
我正在尝试读取包含实体框架基类的程序集,并使用类型信息激活或创建相同的类。
我想使用类型信息来动态查询和列出数据库中的所有列和数据。基本上是一个列出所有表格内容的地方。
一些代码如下:
private Type GetInstanceType(string tableName)
{
return Assembly.Load("EntityFrameWorkDLLName").GetTypes().FirstOrDefault(t => t.Name == tableName);
}
public void GetEntityList(string name)
{
// the list method where I pass the table name to query table using the db context
var instanceType =GetInstanceType(name);
if (instanceType != null)
{
var obj = Activator.CreateInstance(instanceType)
db.obj.Select();// here I am stuck without knowing how to proceed
or db.Set<obj.GetType()> // this also fails with error '<' cannot be applied to operands of 'method group' and 'Type'
}
}
也许我想做的事情很荒谬,但有人可以指出为什么吗? 如果我可以使用具体的实例 .gettype 来代表泛型中的类型参数,那不是很好吗,因为这样任何对象都可以动态地钩接到位?
要回答问题的这一部分,我认为这是问题的原因......
我想使用类型信息来动态查询和列出所有 数据库中的列和数据。基本上是一个单到地方列出 所有表。
您是否考虑过只在数据库上使用INFORMATION_SCHEMA?
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
ORDER BY TABLE_NAME