url*_*der 19 .net c# entity-framework visual-studio visual-studio-2022
我有一个旧项目,是在 .NET 4.5 上使用 VS2019 和 Entity Framework 6 构建的。我们首先使用数据库来生成代码。效果非常好。
\n但是,我们刚刚开始使用 VS2022 V17.6.2,我需要使用新表更新应用程序,因此,我将表添加到model.edmx,运行.tt文件,令我惊讶的是,它显示了如下错误:
\n\nRun Code Online (Sandbox Code Playgroud)\nError \nRunning transformation: System.NullReferenceException: Object reference not set to an instance of an object.\n\nat Microsoft.VisualStudio.TextTemplatingD21DB4521EFD493FAE41A9CE9DA80C875F3084552987498BD518713BDE91D14AF116D5B591FBF7D992E37AB98D0755C27E1BD3D907AED6618E5F11743F78068A.GeneratedTextTransformation.DynamicTextTransformation.get_GenerationEnvironment() in C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\Extensions\\Microsoft\\Entity Framework Tools\\Templates\\Includes\\EF6.Utility.CS.ttinclude:line 1928\n at Microsoft.VisualStudio.TextTemplatingD21DB4521EFD493FAE41A9CE9DA80C875F3084552987498BD518713BDE91D14AF116D5B591FBF7D992E37AB98D0755C27E1BD3D907AED6618E5F11743F78068A.GeneratedTextTransformation.EntityFrameworkTemplateFileManager..ctor(Object textTransformation) in C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\Extensions\\Microsoft\\Entity Framework Tools\\Templates\\Includes\\EF6.Utility.CS.ttinclude:line 1665\n at Microsoft.VisualStudio.TextTemplatingD21DB4521EFD493FAE41A9CE9DA80C875F3084552987498BD518713BDE91D14AF116D5B591FBF7D992E37AB98D0755C27E1BD3D907AED6618E5F11743F78068A.GeneratedTextTransformation.EntityFrameworkTemplateFileManager.VsEntityFrameworkTemplateFileManager..ctor(Object textTemplating) in C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\Extensions\\Microsoft\\Entity Framework Tools\\Templates\\Includes\\EF6.Utility.CS.ttinclude:line 1784\n at Microsoft.VisualStudio.TextTemplatingD21DB4521EFD493FAE41A9CE9DA80C875F3084552987498BD518713BDE91D14AF116D5B591FBF7D992E37AB98D0755C27E1BD3D907AED6618E5F11743F78068A.GeneratedTextTransformation.EntityFrameworkTemplateFileManager.Create(Object textTransformation) in C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\Extensions\\Microsoft\\Entity Framework Tools\\Templates\\Includes\\EF6.Utility.CS.ttinclude:line 1629\n at Microsoft.VisualStudio.TextTemplatingD21DB4521EFD493FAE41A9CE9DA80C875F3084552987498BD518713BDE91D14AF116D5B591FBF7D992E37AB98D0755C27E1BD3D907AED6618E5F11743F78068A.GeneratedTextTransformation.TransformText() in C:\\test\\Code\\ConsoleAppTest\\TestModel.tt:line 10 Miscellaneous Files C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\Extensions\\Microsoft\\Entity Framework Tools\\Templates\\Includes\\EF6.Utility.CS.ttinclude 1928 \n
所以我将新.tt文件与旧文件进行了比较,发现有一些变化,例如,它EF.Utility.CS.ttinclude不是EF6.Utility.CS.ttinclude. 所以我尝试了之前的方法,在 VS2022 中仍然出现同样的错误。
我尝试应用最新的实体6.4.4,改用.net Framework 4.8,还是一样。尝试调试T4模板,仍然是同样的错误。
\n\n现在,我必须为新添加的表手动创建代码。有解决办法吗?这是否意味着我们不能再在 VS2022 for Entity Framework 6 for .NET Framework 4.8(或更低版本)中使用代码生成?
\nLuc*_*ssa 45
这是 Visual Studio 2022 v17.6+ 的一个已知错误
正如 @urlreader 所写,目前 Microsoft 开发人员社区存在一个未解决的问题,并且可以在此处和此处找到解决方法,等待补丁。
解决方法告诉:
C:\ Program Files \ Microsoft Visual Studio \ 2022 \ Professional \ Common7 \ IDE \ Extensions \ Microsoft \ Entity Framework Tools \ Templates \ Includes
私有DynamicTextTransformation(对象实例)
_ GenerationEnvironment = type.GetProperty("GenerationEnvironment", BindingFlags.Instance | BindingFlags.NonPublic);
_ GenerationEnvironment = type.GetProperty("GenerationEnvironment");
| 归档时间: |
|
| 查看次数: |
4595 次 |
| 最近记录: |