2016-04-13 12 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] myClientは、GUIDの種類が異なるためSimple Odata client

+0

定義されているように、ここでlanguageIdが問題

を引き起こしている文字列だと思いますか'userData'とは何ですか?どこでエラーが出ますか? – Backs

+0

更新された質問の詳細 – Neo

+0

ローカル変数 'languageId'のタイプは? – lencharest

答えて

1

はどうやらLanguageId = languageIdはあなたにこのエラーを与えているです。 1つは.net inbuildで、もう1つはサービスコールから得ていると思います。また、私は `myClient`何でしょうか?ここではhttp://www.odata.org/documentation/odata-version-2-0/overview/

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

この場合、何をすべきでしょうか?どうすれば確認できますか?両方とも 'Guid'だけがUserクラスの中CityIdはnullable' public Guidですか? CityId {get;セット; } ' – Neo

+1

、第2の考え方では、LanguageId = languageIdはエラー行です。ここでlanguageIdとは何ですか? – Nitin