使用反射查询实体框架

本文关键字:实体 框架 查询 反射 | 更新日期: 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