2016-04-18 38 views
2

我是Azure應用服務的新手。在新的Azure應用服務中使用SQL Server視圖

我在Azure數據庫中創建了一個視圖,以便跨多個表獲取數據。現在我想使用Azure移動服務(MobileService.GetTable ...)在我的Cordova App中使用此視圖中的數據。我在網絡上發現了幾篇文章,介紹如何在Classic Azure Portal中實現這一點。但是我需要爲Node.js後端的新Azure應用服務提供解決方案。

將視圖中的數據作爲Azure表返回的語法是什麼?

var table = module.exports = require('azure-mobile-apps').table(); 
table.read(function (context) { 
// *** Need code to return data from sql view *** 
//return context.execute(); 
}); 

而且在返回之前使用參數過濾視圖中的數據會很好。

感謝, 烏韋

回答

3

你幾乎就在那裏。您只需創建一個表格控制器即可訪問該視圖。確保您定義了系統列(版本,updatedAt,createdAt,刪除和id)。另外,當你更新視圖時(例如使用INSERT,UPDATE,DELETE),確保正確的事情發生,因爲它會告訴你需要用控制器完成什麼(例如,如果你不能插入/更新/刪除,然後使其成爲只讀)。

參考的博客文章對您:https://shellmonger.com/2016/04/15/30-days-of-zumo-v2-azure-mobile-apps-day-8-table-controller-basics/

+0

嗨阿德里安。感謝您的快速回答和您的博客。我將系統列添加到我的視圖(版本,updatedAt,createdAt,刪除和id)。但我無法弄清楚如何從表格控制器的sql視圖中獲取數據。 您能否提供一個從數據庫視圖而不是數據庫表返回數據的表控制器樣本? 再次感謝, Uwe –

0

事情是那麼容易,有時;-)

所有我需要做的是以下幾行寫我的表控制器:

var table = require('azure-mobile-apps').table(); 
table.databaseTableName = 'ViewName'; 
module.exports = table; 

感謝您的幫助!

+0

嘿,你有什麼機會可以詳細說明你是如何解決這個問題的?我正試圖完成同樣的事情。我創建了一個視圖「MyView」和一個EasyTable「ViewController」 - 雖然我不確定代碼在哪裏。(就像這篇文章中的代碼 - 這是在app.js或「ViewController.js」)? – user3007447

0

有一個類似的問題,但現在修復它,我使用.Net後端你。 1.登錄Azure門戶並選擇要在其中創建視圖的數據庫。然後在左側窗格中選擇查詢編輯器。 2.使用sql創建查詢。 3.在asp.net後端創建一個與您的視圖中的字段匹配的表。 4.Go你的asp.net後臺,並創建一個自定義API和編寫以下代碼:

public class HelloCustomController : ApiController 
{ 
    MobileServiceContext context; 
    public HelloCustomController() 
    { 
     context = new MobileServiceContext(); 
    } 

    [HttpGet] 
    public async Task<List<vwUser>> Get() 
    { 
     try 
     { 
      var users = context.Database.SqlQuery<vwUser>("Select * from 
      dbo.vwUser); 
      return await users.ToListAsync(); 
     } 
     catch(Exception ex) 
     { 
      return new List<vwUser>() 
      { 
       new vwUser 
       { 
        UserName=ex.Message 
       } 
      }; 
     } 
    } 

4.You編輯我的代碼從您的視圖中選擇。 5.在您的移動應用程序中創建一個與您在後端創建的類似的類。 5.然後,您可以用以下代碼調用它在你的移動應用程序訪問你的觀點:

var users= await client.InvokeApiAsync<vwUser>("HelloCustom",HttpMethod.Get,null); 

謝謝你們。這是我從這個美麗社區的第一口氣回答,這個社區讓我從編程的第一天一直到現在都有點熟悉。

相關問題