在NEW Azure App Service中使用SQL Server视图

时间:2016-04-18 16:37:26

标签: node.js cordova azure azure-mobile-services

我是Azure App Service的新手。

我在Azure数据库中创建了一个视图,以便跨多个表获取数据。现在,我想使用Azure移动服务(MobileService.GetTable ...)在我的Cordova应用程序中使用此视图中的数据。我在网上发现了一些描述如何在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 个答案:

答案 0 :(得分:3)

你几乎就在那里。您只需创建一个表控制器来访问该视图。确保已定义系统列(version,updatedAt,createdAt,deleted和id)。此外,确保在更新视图时发生正确的事情(例如,使用INSERT,UPDATE,DELETE),因为这将告诉您需要对控制器执行的操作(例如,如果您无法插入/更新/删除,然后把它变成只读的。

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

答案 1 :(得分:0)

有时事情可能很容易; - )

我需要做的就是将以下行写入我的表控制器:

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

感谢您的帮助!

答案 2 :(得分:0)

有一个类似的问题,但现在修复它,我正在使用.Net后端。 1.登录azure portal并选择要在其中创建视图的数据库然后在左窗格中选择查询编辑器。 2.使用sql创建查询。 3.在asp.net后端创建一个与您视图中的字段匹配的表。 4.转到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.您可以编辑我的代码以从您的视图中进行选择。 5.在移动应用程序中创建一个与您在后端创建的类相匹配的类。 5.然后,您可以使用以下代码在移动应用程序中调用该视图来访问您的视图:

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

谢谢你们。这是我对这个美丽社区的最快回答,这个社区让我从编程的第一天到现在都有点熟悉。