Model Order:
public int Id { get; set; }
[Required] public string Subject { get; set; }
[Required] public string Text { get; set; }
[Required] public string Payment { get; set; }
public virtual Service Service { get; set; }
public virtual User User { get; set; }
Controller:
public async Task<IActionResult> Check(int id)
{
var model = await _context.Orders
.Include(b => b.User)
.Include(b => b.Service)
.SingleOrDefaultAsync(a => a.Id == id);
return View(model);
}
[HttpPost]
public async Task<IActionResult> Check([Bind("Subject", "Text")] Order order)
{
_context.Update(order);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
View:
@model ... .Models.Order
<form asp-action="Check">
<input asp-for="Subject">
<input asp-for="Text">
<input type="submit">
</form>
Так вот, мне нужно сделать обновления записи. И у меня выдает ошибку:
Cannot insert the value NULL into column 'Payment', table 'Ad.dbo.Orders'; column does not allow nulls. INSERT fails.
В поле payment есть значение по умолчанию, его обновлять не надо. То есть ef воспринимает, как добавление записи, а не обновление.
Подскажите как исправить ошибку. Я бы хотел что-то наподобии автозаполнение сделать(mass assigning) сделать, то есть только те которые в asp-for
вписаны будут обновляться, ибо полей много.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть следующая задача: Реализовать WCF сервис (внутри сервиса крутятся несколько обобщенных очередей в которые помещаются типизированные...
Прошу помочь в следующем вопросе: У меня есть метод, который делает десериализацию данных, после десериализации данные добавляются в список...