Pyn*_*ynt 4 c# visual-studio odata odata-v4
在Visual Studio 2013中,我使用Nuget中的OData客户端代码生成器来使用OData V4端点.出乎意料的是,本周t4模板给出了错误:无法将类型为"Microsoft.OData.Edm.Csdl.CsdlSemantics.UnresolvedType"的对象强制转换为"Microsoft.OData.Edm.IEdmCollectionType".
我正在使用7个OData端点,并且只有其中一个在后端需要重新保存*.tt文件的更新.保存后出现错误并将输出*.cs文件留空.然后,我尝试在OData端点保存一个没有模型更改的*.tt文件,以查看它的行为方式.思考过程可能是端点模型的变化可能与客户端代码生成器不兼容.不幸的是,一个失败并产生了一个空白的*.cs文件以及相同的错误.
幸运的是,所有内容都使用git进行版本控制,我能够回滚文件以保持项目正常运行.
将此放在此处以防其他任何人升级他们的OData客户端代码生成器并感到沮丧.
问题原来是从以下版本升级:OData Client T4 Template ver.2.2.0到OData客户端T4模板版本.2.4.0
在版本之间添加了一些新项目,使您的旧*.TTInclude文件无效.
解决问题的步骤
上述步骤应该可以解决问题.
我注意到其中一个变化的一些变化.
在ttinclude中添加了一个新的命名空间
<#@ Import Namespace="Microsoft.OData.Edm.Vocabularies.Community.V1" #>
Run Code Online (Sandbox Code Playgroud)
添加了一个新的DeclaredValueTerm:
tmp.FindDeclaredValueTerm(AlternateKeysVocabularyConstants.AlternateKeys) != null)
Run Code Online (Sandbox Code Playgroud)
一种新的抽象方法:
internal abstract void WriteEntityTypeAttribute();
Run Code Online (Sandbox Code Playgroud)
以及一些其他杂项,使您以前的模板无效.希望这对任何为OData V4升级OData客户端代码生成器的人都有帮助.
| 归档时间: |
|
| 查看次数: |
2324 次 |
| 最近记录: |