C#将新创建的模型动态加载到对象

C#将新创建的模型动态加载到对象,c#,entity-framework,C#,Entity Framework,我现在正在重新发明热水。我想创建一个像实体框架一样工作的基本orm工具 这是一个控制台应用程序,它有一个非常简单的流程: 它创建了一个scaffold字符串,这样我就可以使用efcore从数据库中创建模型 在我手动使用PackageManager控制台执行scaffold字符串之后,这些模型被保存并添加到控制台应用程序中 我现在被困在这里:因为模型是使用efcore加载和创建的,所以我需要重新启动应用程序,并正确添加模型,以便在下面的代码中将模型用作对象 Console.WriteLine

我现在正在重新发明热水。我想创建一个像实体框架一样工作的基本orm工具

这是一个控制台应用程序,它有一个非常简单的流程:

  • 它创建了一个scaffold字符串,这样我就可以使用efcore从数据库中创建模型

  • 在我手动使用PackageManager控制台执行scaffold字符串之后,这些模型被保存并添加到控制台应用程序中

  • 我现在被困在这里:因为模型是使用efcore加载和创建的,所以我需要重新启动应用程序,并正确添加模型,以便在下面的代码中将模型用作对象

     Console.WriteLine($"New App Started : {args[0]}");
    
     objectName = args[0];
    
     // HERE I AM STUCK, because I would like to do this dynamically
     // var model = HowCanILoadTheModelDynamicaly(objectName);
    
     // Now I need to change this every time after I build the selected 
     // model using EF Core
     var model = new vwProductGroup();
    
     // 2 - 
     ProgramCreateClass.CreateNewDataServiceClass(
                 ProgramCreateOrm.GenerateModelSet(model),
                 ProgramCreateOrm.GenerateModelRead(model),
                 ProgramCreateOrm.GenerateModelReadList(model),
                 model.GetType() );
    
     Console.ReadLine();
    
  • 问题是,在使用EF Core构建模型之前,我不知道模型的内容,在本例中为
    vwProductgroup
    。所以我无法创建接口

    我使用了在网上找到的几个建议,但我无法使其正常工作。

    因此,找到这些建议后,我只需要以下代码:

    var model = Activator.CreateInstance(Type.GetType($"DataLibrary.DataModels.{args[0]}")); 
    

    这返回了所需的类型。

    var model=Activator.CreateInstance(type.GetType($“DataLibrary.DataModels.{args[0]}”);这里鼓励你回答自己的问题。