У меня есть BusinessLayer, который содержит Коллекции и повторно используемый код в старом настольном приложении.
Теперь я хочу снова использовать этот слой в приложении MVC.Я пытаюсь использовать слой в Controller, например, Index ()
public ActionResult Index()
{
if (Session["DataEntryLogic"] == null)
Session["DataEntryLogic"] = new DataEntryLogic();
var EntryLogic = Session["DataEntryLogic"] as DataEntryLogic;
EntryLogic.Tables.Add(new Table());
EntryLogic.Tables[0].TableID = "AccTransHed";
EntryLogic.Tables[0].TableType = TableType.Master;
}
Теперь я хочу сохранить таблицы, которые я добавил в первой загрузке View.и сделайте его неизменным в следующих пост-спинах.Я использовал сессию.Я не знаю, следует ли вместо этого использовать ViewBag или ViewData.
Короче говоря: какой шаблон следует использовать для создания неизменяемого BusinessLayer?
Поскольку каждый раз, когда выполняются постбэки, не требуетсячтобы снова и снова получать информацию о таблице или ключи или саму логику.
Обновлено 2019/04/14
Должен ли я заменить все свойства и коллекции BusinessLogic на этот шаблон?
в приложении Windows:
pulic class EntryLogic{
public List<Table> Tables{get;set;}
}
Для приложения MVC:
public class EntryLogic{
public List<Table> Tables{
get{
if(Session["Tables"] == null)
Session["Tables"] = new List<Table>();
return Session["Tables"] as List<Table>;
}
set { Session["Tables"] = value;}
}
}
Или Просто инициализировать экземпляр EntryLogic настольного приложения в переменной сеанса?
var EntryLogic = Session["EntryLogic"] as EntryLogic;