vs2022 版本17.6.2 使用 EF6生成实体数据模型时出现报错:正在运行转换: System.NullReferenceException: 未将对象引用设置到对象的实例
这是visual studio 2022 17.6.2的一个bug,就是在edmx中添加新表时,无法生成新表对应的实体类。正在运行转换: System.NullReferenceException: 未将对象引用设置到对象的实例。解决方案就是回退版本,或者手工修改生成的模板文件,也可以等下个正式版本。然后就可以成功的使用vs2022+EF6生成指定数据库的模型了。vs2022没有什么回退的方案,只
错误信息:
正在运行转换: 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生成指定数据库的模型了
更多推荐


所有评论(0)