2016-04-13 49 views
0

我的用户类如下所示,当我尝试使用下面的查询更新记录时,它给了我例外。无法将类型System.String的值转换为OData类型[Edm.Guid Nullable = True]

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(); 

上述更新语句执行后,我得到异常 Unable to convert value of type System.String to OData type [Edm.Guid Nullable=True] myClientSimple Odata client

+0

什么'myClient'?什么是'userData'?你在哪里得到错误? – Backs

+0

更新的问题与详情 – Neo

+0

局部变量'languageId'的类型是什么? – lencharest

回答

1

显然LanguageId = languageId是给你这个错误,因为Guid类型是不同的。一个是.net inbuild,一个我认为你是从你的服务电话中获得的。另外,我觉得languageId这里是这是造成如这里所定义的问题

http://www.odata.org/documentation/odata-version-2-0/overview/

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

谢谢,但在这种情况下应该做什么?我该如何检查?都是'Guid'唯一的东西在用户类CityId是可空的'public guid? CityId {get;组; }' – Neo

+1

第二个想法,LanguageId = languageId是错误行。这里languageId是什么? – Nitin

相关问题