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



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

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

  1. 它创建了一个脚手架字符串,这样我就可以使用EF Core从数据库中创建模型。

  2. 在我手动使用包管理器控制台执行脚手架字符串之后,模型被保存并添加到控制台应用程序中

  3. 我目前陷入了困境:因为模型是使用EF Core加载和创建的,所以我需要重新启动应用程序,并正确地寻址模型,以便在下面的代码中使用模型作为对象。

    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]}")); 

这返回了所需的类型。

最新更新