У меня есть служебное приложение OWIN/Katana. Одна из его функций - обслуживать некоторые данные через WebAPI. В этом приложении у меня есть класс, называемый dataManager, который отвечает за получение данных и передает его на контроллер API, который просил об этом. Данные в конечном счете передаются на мобильную платформу, поэтому очень важно максимально кэшировать производительность. Есть ли способ предварительно загрузить мой DataManager при запуске приложения и предварительно выполнить его linq-запросы?Как предварительно загрузить данные в самообслуживаемое приложение OWIN
Класс Application выглядит следующим образом:
классnamespace TaskManager
{
using System;
using Microsoft.Owin.Hosting;
public class TaskManagerApplication
{
protected IDisposable WebApplication;
public void Start()
{
WebApplication = WebApp.Start<WebPipeline>("http://*:8080");
}
public void Stop()
{
WebApplication.Dispose();
}
}
}
Программа выглядит следующим образом:
namespace TaskManager
{
using Topshelf;
internal class Program
{
private static int Main()
{
var exitCode = HostFactory.Run(host =>
{
host.Service<TaskManagerApplication>(service =>
{
service.ConstructUsing(() => new TaskManagerApplication());
service.WhenStarted(a => a.Start());
service.WhenStopped(a => a.Stop());
});
host.SetDescription("Task Manager");
host.SetDisplayName("Task Manager");
host.SetServiceName("TaskManager");
host.RunAsNetworkService();
});
return (int) exitCode;
}
}
}
И заявления поиска данных, содержащихся в классе DataManager выглядеть следующим образом:
var rawData = from data in new XPQuery<AccountView3.PipelineData>(uow)
where data.Stage.ToLower().Contains("won")
&& data.RevenueStartDate.Value.Year == DateTime.Today.Year
&& data.WeekOfTheYear >= priorWeekCutoff
select data;
Спасибо! Я обязательно отвечу на него –
Разве это сработало для вас? Если нет, дайте мне знать. – biscuit314