0

ここでいくつかのコードを使用します:

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2012/09/19/experimenting-with-windows-azure-mobile-services.aspx

... WAMS テーブルをクエリするための「インスピレーション」として、私はこれを思いつきました:

public static async Task<string> GetMammalDeviceID(string mammalID, string zoologistDeviceID)
{
    IMobileServiceTable<DUCKBILLED_PLATYPI> table = App.MobileService.GetTable<DUCKBILLED_PLATYPI>();

    MobileServiceTableQuery<String> query =
        table.Where(i => i.mammalID == mammalID).
              Where(j => j.zoologistDeviceID == zoologistDeviceID).
              Select(k => k.mammalDeviceID);
    return query.ToString();
}

しかし、これが本当に「それを行う方法」なのか、それとも良い方法なのかは疑問です. 私をまっすぐにするWAMSテーブルを照会するためのサンプルコードを持っている人はいますか?

同様に、レコードを挿入するための好ましい方法は次のうちどれですか?

これ:

DUCKBILLED_PLATYPI platypus = new DUCKBILLED_PLATYPI { mammalID = mammalEmail, zoologistDeviceID = zoologistDeviceID, zoologistName = zoologistName };
await App.MobileService.GetTable<DUCKBILLED_PLATYPI>().InsertAsync(platypus);

...またはこれ:

DUCKBILLED_PLATYPI platypus = new DUCKBILLED_PLATYPI { mammalID = mammalEmail, zoologistDeviceID = zoologistDeviceID, zoologistName = zoologistName };
IMobileServiceTable<DUCKBILLED_PLATYPI> platypi = App.MobileService.GetTable<DUCKBILLED_PLATYPI>();
await platypi.InsertAsync(platypus);

?

4

1 に答える 1

2

query.ToString()は、基盤となるモバイルサービスクラスの文字列表現を提供します。これは、おそらくあなたが望むものではないようなものMicrosoft.WindowsAzure.MobileServices.MobileServiceTableQuery``1[System.String]です。

実際のmalmanateDeviceIDを返したいと思いますか?その場合、2つの調整が必要です。

  1. 返される行が1つだけであると想定することはできないため、。List<String>だけでなくを期待する必要がありStringます。1つだけ戻したい場合はTake(1)、クエリに追加できます(ただし、それでもリストです)。
  2. クライアントでクエリを実体化してクエリを実行する必要があります。この場合はToListAsync()機能するはずです。

だから次のようなもの:

public static async Task<List<string>> GetMammalDeviceID(string mammalID, string zoologistDeviceID)
{
    IMobileServiceTable<DUCKBILLED_PLATYPI> table = App.MobileService.GetTable<DUCKBILLED_PLATYPI>();

    MobileServiceTableQuery<String> query =
        table.Where(i => i.mammalID == mammalID).
              Where(j => j.zoologistDeviceID == zoologistDeviceID).
              Select(k => k.mammalDeviceID);
    return await query.ToListAsync()
}

2番目の部分については、冗長性以外に違いはありません。最初のオプションの流動的な性質は、より読みやすいと思います。

于 2012-12-13T02:37:16.553 に答える