服务引用更新抛出表达式太长或太复杂而无法编译

本文关键字:复杂 编译 更新 表达式 服务 引用 | 更新日期: 2023-09-27 18:15:59

当我尝试更新。net服务引用时,我得到错误"表达式太长或太复杂而无法编译"。我打开了服务的reference .cs,看看发生了什么,看起来Visual Studio正在用一个名为GeneratedEDMModel的抽象类更新服务引用。基本上,这个类容纳了一个编译器似乎有问题的非常长的连接xml字符串。它看起来也很环保,因为团队中的其他人能够很好地更新服务,而这个类没有被生成。删除和创建一个新服务做同样的事情,我也尝试了一个o-data服务,并得到了相同的行为。

有人能解释一下这是什么以及它是如何产生的吗?

我不可能将整个模型字符串粘贴在这里,但这里是写入参考文件的代码片段。const字符串ModelEdmx似乎是xml形式的整个EF模型。

 [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
    private abstract class GeneratedEdmModel
    {
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private static global::Microsoft.Data.Edm.IEdmModel ParsedModel = LoadModelFromString(ModelEdmx);
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private const string ModelEdmx = "<edmx:Edmx Version='"1.0'" xmlns:edmx='"http://schemas.microsoft.com/ado/2007/06/edm" +
            "x'"><edmx:DataServices m:DataServiceVersion='"1.0'" m:MaxDataServiceVersion='"3.0'" x" +
            "mlns:m='"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata'"><Schema " +
            "Namespace='"Model'" xmlns='"http://schemas.microsoft.com/ado/2009/11/edm'"><Ent" +
            "ityType Name='"AttachmentType'"><Key><PropertyRef Name='"AttachmentTypeId'" /></Key>" +
            "<Property Name='"AttachmentTypeId'" Type='"Edm.Guid'" Nullable='"false'" p6:StoreGener" +

服务引用更新抛出表达式太长或太复杂而无法编译

这与Visual Studio有关。重新安装visual studio修复了这个问题。