#scheduled-tasks #tempdata
#запланированные задачи #временные данные
Вопрос:
Иногда нам нужно сохранить временные данные в транзакции. и если это не будет принудительно выполнено, оно будет удалено . например, загрузка изображений.
Какова наилучшая стратегия для этого? сохранение данных в фактической базе данных и выполнение планирования задач, которое удалит неполные данные (строку) или сохранит их во временном пространстве или что?
Большое спасибо.
Комментарии:
1. наилучший подход здесь может зависеть от платформы / архитектуры — возможно, вы захотите быть более конкретным
2. @Marc: у тебя терпение святого! Думаю, это лишь одна из причин, по которой вы являетесь администратором! 😉
3. Пожалуйста, любые предложения.
4. @HTB: через 4 часа после того, как вы задали вопрос, все, что вы можете добавить, это то, что вы используете .NET? Очень плохо…
Ответ №1:
Пример для временных данных, я надеюсь, что я делаю это правильно. берем пример из busroute:-
if (id != busRoute.BusRouteCode)
{
return NotFound();
}
if (ModelState.IsValid)
{
try
{
_context.Update(busRoute);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!BusRouteExists(busRoute.BusRouteCode))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(busRoute);
}
public async Task<IActionResult> Create([Bind("BusRouteCode,RouteName")] BusRoute busRoute)
{
if (ModelState.IsValid)
{
_context.Add(busRoute);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(busRoute);
}
Для индекса:-
TempData[«сообщение»] = «Добро пожаловать в список участников …»;
if (MemberId == null)
{
TempData["message"] = "Please select a Member...";
RedirectToAction("SHMember", "Index");
}
string memberId = MemberId.ToString();
var FullName = _context.Membership
.Include("FullName")
.Where(m => m.MemberId == MemberId)
.Select(m => m.Member.FullName)
.FirstOrDefault();
if (memberId != null)
{
HttpContext.Session.SetString("MemberId", memberId);
HttpContext.Session.SetString("FullName", FullName);
}
else
{
memberId = HttpContext.Session.GetString("MemberId");
FullName = HttpContext.Session.GetString("FullName");
if (memberId == null)
{
//return to View and Display Message
TempData["message"] = "Please select a Member...";
return RedirectToAction("Index", "Member");
}
}
ViewBag.FullName = HttpContext.Session.GetString("FullName");
var MembershipContext = _context.Membership
.Where(m => m.MemberId == MemberId)
.OrderByDescending(m=>m.Year);
return View(await MembershipContext.ToListAsync());
Комментарии:
1. Ответы, содержащие только код, действительно не приветствуются. Чтобы помочь будущим читателям, пожалуйста, объясните, что вы тоже делаете!