簡體   English   中英

如何使用帶有Windows Phone 8的Azure移動服務對多個(聯合)表進行查詢?

[英]How to make a query on multiple(joined) Tables using Azure Mobile Services with windows phone 8?

我有兩個表,它們在Azure數據庫管理器中建立了索引。 所以我在第二張表中有外鍵。 我的桌子例如

OrderTable(OrderId,OrderDate,CustomerId)/ CustomerId是我的外鍵

客戶表(CustomerId,CustomerName,....)

所以我只想要這樣的查詢:

Select *
From OrderTable o1,CustomerTable c1
Where c1.CustomerId=o1.CustomerId

我使用了Microsoft示例TodoItems,並且已經可以在一個表上進行查詢,如下所示:

    items = await todoTable
    .Where(todoItem => todoItem.Date >= DateTime.Now)
    .ToCollectionAsync();
    .ToListAsync();

所以在我的應用程序中,我得到了兩個表,是否可以像上面的表那樣查詢已聯接的表?

您可以在LINQ中執行聯接,但是根據您的情況,創建執行聯接的視圖然后使用LINQ從視圖中進行選擇可能會更容易。

另外,您應該避免使用舊的連接語法-它將在某些時候停止受支持-並使用INNER JOIN子句,即

    SELECT * FROM OrderTable o1 INNER JOIN CustomerTable c1 
    ON c1.CustomerId = o1.CustomerId

創建一個像Rikalous指出的視圖。 您可以通過單擊Windows Azure門戶上的Sql數據庫來執行此操作。 選擇您的服務器,然后單擊右下角“儀表板”頁面上的“管理URL”。

登錄后,單擊“新建查詢”,然后鍵入sql代碼以創建視圖。

CREATE mySchema.myView AS
SELECT * FROM Table t1 INNER JOIN OtherTable t2 ON t1.a=t2.b

創建視圖后,請返回Windows Azure門戶。 轉到您的移動服務並創建一個新表。 使用您的視圖名稱創建表,系統將檢測該視圖並將其呈現給您。 您將看到不存在默認列,也不會顯示任何數據。 但是您可以像查詢其他任何表一樣查詢它,此外,您還可以修改其插入/更新/讀取腳本。

*重要:請仔細檢查您的視圖是否在正確的架構上創建。 在移動服務上添加表后,還要仔細檢查服務器上沒有創建表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM