错误信息:

正在运行转换: System.NullReferenceException: 未将对象引用设置到对象的实例。
   在 Microsoft.VisualStudio.TextTemplatingDFD4B109F1046190D8927C46A4C2BA233982C569960C36E16680FFB43C5BB5F19EE2E44912AF22CA974C279E98B1E471A7027B774008A28E1AEF1C53A8E3A2AC.GeneratedTextTransformation.DynamicTextTransformation.get_GenerationEnvironment()
   在 Microsoft.VisualStudio.TextTemplatingDFD4B109F1046190D8927C46A4C2BA233982C569960C36E16680FFB43C5BB5F19EE2E44912AF22CA974C279E98B1E471A7027B774008A28E1AEF1C53A8E3A2AC.GeneratedTextTransformation.EntityFrameworkTemplateFileManager..ctor(Object textTransformation)
   在 Microsoft.VisualStudio.TextTemplatingDFD4B109F1046190D8927C46A4C2BA233982C569960C36E16680FFB43C5BB5F19EE2E44912AF22CA974C279E98B1E471A7027B774008A28E1AEF1C53A8E3A2AC.GeneratedTextTransformation.EntityFrameworkTemplateFileManager.VsEntityFrameworkTemplateFileManager..ctor(Object textTemplating)
   在 Microsoft.VisualStudio.TextTemplatingDFD4B109F1046190D8927C46A4C2BA233982C569960C36E16680FFB43C5BB5F19EE2E44912AF22CA974C279E98B1E471A7027B774008A28E1AEF1C53A8E3A2AC.GeneratedTextTransformation.EntityFrameworkTemplateFileManager.Create(Object textTransformation)
   在 Microsoft.VisualStudio.TextTemplatingDFD4B109F1046190D8927C46A4C2BA233982C569960C36E16680FFB43C5BB5F19EE2E44912AF22CA974C279E98B1E471A7027B774008A28E1AEF1C53A8E3A2AC.GeneratedTextTransformation.TransformText()    Corona_Virus_Disease    1    D:\文档\xm2\Corona_Virus_Disease\Corona_Virus_Disease\Models\Test.tt    1    
 

说明:

这是visual studio 2022 17.6.2的一个bug,就是在edmx中添加新表时,无法生成新表对应的实体类。


解决方法:

解决方案就是回退版本,或者手工修改生成的模板文件,也可以等下个正式版本。
vs2022没有什么回退的方案,只能自己修改模板文件了。

1、找到模板文件

工具→获取工具和功能→安装位置

打开安装vs的文件夹,搜索  EF6.Utility.CS.ttinclude 这个文件

2.修改模板文件

 使用vs打开这个文件,ctrl+F搜索代码:

_generationEnvironment = type.GetProperty("GenerationEnvironment", BindingFlags.Instance | BindingFlags.NonPublic);

 

 将这段代码修改为:

_generationEnvironment = type.GetProperty("GenerationEnvironment");

保存,退出重进要生成模型的项目。

然后就可以成功的使用vs2022+EF6生成指定数据库的模型了

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐