2016-04-13 79 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

相關問題