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]
myClient
是Simple 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.