我目前正在重新发明热水。我想创建一个像实体框架一样工作的基本orm工具。
这是一个控制台应用程序,它有一个非常简单的流程:
-
它创建了一个脚手架字符串,这样我就可以使用EF Core从数据库中创建模型。
-
在我手动使用包管理器控制台执行脚手架字符串之后,模型被保存并添加到控制台应用程序中
-
我目前陷入了困境:因为模型是使用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]}"));
这返回了所需的类型。