Мне нужно сохранить несколько значений, которые я получаю из БД, и они останутся постоянными во время сеанса, хотя они могут измениться из-за того, что пользователь отправил конкретный запрос.Мы делали это с переменными Session.
Я думал зарегистрировать службу Singleton, которая будет получать некоторые значения из базы данных и сохранять их в течение всей сессии.Так что сервис требует моего DbContext.
Интерфейс прост:
interface IPhrases
{
Task SetPhrasesForLanguage(int LanguageID);
}
Класс обслуживания аналогичен следующему:
public class LangPhrases : IPhrases
{
private OVContext _context;
private int _LanguageID;
public string PageHeading { get; set; }
public LangPhrases(OVContext context, int LanguageID)
{
_context = context;
_LanguageID = LanguageID;
}
public Task SetPhrasesForLanguage(int LanguageID)
{
IQueryable<clsPhrases> lPhrases = (from p in _context.Phrases
where p.LangaugeId == LanguageID
select new clsPhrases()
{
Phrase=p.Phrase,
VarID=p.VarId
});
//logic to get PageHeading from the lPhrases collection
}
}
Будет ли передача DbContext с ограничениями в одноэлементную службу сохранить DbContext впамять между запросами?
Чтобы уточнить: я ищу способ получить эти значения и сохранить их для сеанса, БЕЗ сохранения DbContext в памяти.