Ser*_*exx 16 t4 entity-framework edmx edmx-designer .net-4.8
这始于 EDMX 突然不生成类文件。.context.cs 文件包含类声明,例如
public virtual DbSet<myTable> myTable { get; set; }
Run Code Online (Sandbox Code Playgroud)
但实际的类文件并未生成。两个 .tt 文件都在那里,“运行自定义工具”没有帮助。
在调试 Model.tt T4 模板时,此声明:
public StringBuilder GenerationEnvironment { get { return (StringBuilder)_generationEnvironment.GetValue(_instance, null); } }
Run Code Online (Sandbox Code Playgroud)
产生
“System.NullReferenceException:'未将对象引用设置为对象的实例。'”
_ GenerationEnvironment 变量为 NULL。
为了确保数据库更改不会触发此问题,我重新创建了模型,仅包含一个未修改的表,但没有任何改进。
不幸的是,我没有能力将其转移到代码优先和核心,因此我们将不胜感激地收到任何建议。
Chr*_*ski 31
在最新的更新(即17.6.2)中,属性访问Microsoft.VisualStudio.TextTemplating.GeneratedTextTransformation.GenerationEnvironment
似乎已从非公开更改为公开
您可以修改EF.Utility.CS.ttinclude
和EF6.Utility.CS.ttinclude
文件以C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes
通过更改来解决此问题
_generationEnvironment = type.GetProperty("GenerationEnvironment", BindingFlags.Instance | BindingFlags.NonPublic);
Run Code Online (Sandbox Code Playgroud)
到
_generationEnvironment = type.GetProperty("GenerationEnvironment", BindingFlags.Instance | BindingFlags.Public);
Run Code Online (Sandbox Code Playgroud)
编辑:看起来它将在下一个VS版本中修复 https://github.com/dotnet/ef6tools/commit/89cd126fa8ebfd40c3b5e781232be940711cf726
这里同样的问题。使用 Visual Studio Community 2022 版本 17.6.2
C:\ Program Files \ Microsoft Visual Studio \ 2022 \ Community \ Common7 \ IDE \ Extensions \ Microsoft \ Entity Framework Tools \ Templates \ Includes \ EF6.Utility.CS.ttinclude:第1928行
编辑:回滚到 17.5.3 后问题就消失了
归档时间: |
|
查看次数: |
2673 次 |
最近记录: |