Azure易于表 - 仅加载一列



是否有某种方法可以从Azure Easy Dables获取一行的一个数据列?

例如Xamarin.Forms应用程序将将项目名称发送到Azure,并仅获取项目创建日期。

这是一个示例,我们只想从Dog表中选择Name列。

此示例使用Azure移动客户端和Azure移动客户端SQL Nuget软件包。

模型

using Microsoft.WindowsAzure.MobileServices;
using Newtonsoft.Json;
namespace SampleApp
{
    public class Dog
    {
        public string Name { get; set; }
        public string Breed { get; set; }
        public int Age { get; set; }
        [JsonProperty(PropertyName = "id")]
        public string Id { get; set; }
        [CreatedAt]
        public DateTimeOffset CreatedAt { get; set; }
        [UpdatedAt]
        public DateTimeOffset UpdatedAt { get; set; }
        [Version]
        public string AzureVersion { get; set; }
        [Deleted]
        public bool IsDeleted { get; set; }
    }
}

逻辑

using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.WindowsAzure.MobileServices;
using Microsoft.WindowsAzure.MobileServices.Sync;
using Microsoft.WindowsAzure.MobileServices.SQLiteStore;
namespace SampleApp
{    
    public class MobileClientService
    {
        bool isMobileClientInitialized;
        MobileServiceClient mobileClient;
        public async Task<string> GetDogName(string id)
        {    
            await InitializeMobileClient(); 
            var dog =  await mobileClient.GetSyncTable<Dog>().LookupAsync(id);
            var dogName = dog.Name;
            return dogName;
        }
        public async Task<IEnumerable<string>> GetDogNames()
        {    
            await InitializeMobileClient(); 
            var dogNameList =  await mobileClient.GetSyncTable<Dog>().Select(x => x.Name).ToEnumerableAsync();
            return dogNameList;
        }
        async Task InitializeMobileClient()
        {
            if(isMobileClientInitialized)
                return;
            mobileClient = new MobileServiceClient("Your Azure Mobile Client Url");
            var path = Path.Combine(MobileServiceClient.DefaultDatabasePath, "app.db");
            var store = new MobileServiceSQLiteStore(path);
            store.DefineTable<Dog>();
            //ToDo Define all remaining tables
            await MobileServiceClient.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
        }
    }
}