我是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();
});
在返回之前使用参数过滤视图中的数据会很棒。
谢谢, 乌韦
答案 0 :(得分:3)
你几乎就在那里。您只需创建一个表控制器来访问该视图。确保已定义系统列(version,updatedAt,createdAt,deleted和id)。此外,确保在更新视图时发生正确的事情(例如,使用INSERT,UPDATE,DELETE),因为这将告诉您需要对控制器执行的操作(例如,如果您无法插入/更新/删除,然后把它变成只读的。
答案 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);
谢谢你们。这是我对这个美丽社区的最快回答,这个社区让我从编程的第一天到现在都有点熟悉。