Использование Realm и SQL Server - лучший подход к подкачке данных - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть база данных, которая должна содержать более 5000 продуктов, и я должен загрузить этот список продуктов на КПК. Я не против сделать это через API, но каков мой лучший способ сделать это.

Например, эта функция хороша, так как будет иметь максимум десять записей.

public async void DownloadWarehouses ()
{ 
   var realm = Realm.GetInstance();
   List<SageWarehouse> _result = new List<SageWarehouse>();
   lblSynItem.Text = "Syncing Warehouses";
   _result = await restServices.GetWareHouses();
   foreach (var item in _result)
   {
       realm.Write(() =>
        {
           realm.Add(new RealmWarehouses { WarehouseID = item.WarehouseID,Name=item.Name,Description = item.Description});
        });    
       }


   }

Это прекрасно работает и загружает данные в локальное хранилище данных на телефоне.Я использую dapper.net, поэтому моя функция - это сохраненный процесс, который отправляет данные, которые вы увидите. Я передаю идентификатор, но мой вопрос вызван тем, что мой интерфейс не будет знать, сколько записей будет в моем наборе данных, какя могу достичь пейджинга здесь.Или я должен вернуть количество строк в одном и том же хранимом процессе, чтобы я мог затем выполнить разбиение по страницам, пока он не достигнет продукта 5000?

public List<StockTakeAllItems> GetStockTakeAll(int WarehouseId)
    {
        List<StockTakeAllItems> results = new List<StockTakeAllItems>();
        using (var connection = new SqlConnection(ConfigurationManager.AppSettings["DataConnectionLive"]))
        {
            connection.Open();
            results = connection.Query<StockTakeAllItems>("StockTakes_GetAll", param: new { warehouseID = WarehouseId }, commandType: CommandType.StoredProcedure).ToList();
        }
        return results;
 }
...