无法将System.String类型的值转换为OData类型[Edm.Guid Nullable=True]



My User类如下所示,当我尝试使用下面的查询更新记录时,它会给我一个异常。

public class User
{
    public User();
    public Guid Id { get; set; }
    public virtual Language Language { get; set; }
    public Guid? LanguageId { get; set; }
    public virtual City City { get; set; }
    public Guid? CityId { get; set; }
}

代码

            Guid cityId = new Guid("4B1FCCA6-3E43-44BA-8516-BC693F02E9B5");
            await myClient.For<User>()
            .Filter(t => t.CityId == cityId)
            .Set(new { LanguageId = languageId  })
            .UpdateEntryAsync();

在执行了上面的update语句之后,我得到了异常Unable to convert value of type System.String to OData type [Edm.Guid Nullable=True]myClientSimple Odata client

显然LanguageId = languageId会给您这个错误,因为Guid类型不同。一个是.net内置,另一个我想你是从你的服务电话中得到的。此外,我认为这里的languageId是导致问题的字符串

如此处所定义http://www.odata.org/documentation/odata-version-2-0/overview/

Edm.Guid : Represents a 16-byte (128-bit) unique identifier value. 

最新更新