【发布时间】:2019-05-23 07:09:01
【问题描述】:
我为记录创建了一个编辑页面,保存时出现以下错误:
实体类型“LoadTable”的属性“Id”在尝试将实体的状态更改为“已修改”时具有临时值。要么显式设置一个永久值,要么确保数据库配置为为此属性生成值。
我认为它可能被分配了一个临时值,而不是使用现有的值。
来自我的 Edit.cs:
[BindProperty]
public LoadTable LoadTable { get; set; }
public async Task<IActionResult> OnGetAsync(Guid id)
{
if (id == null)
{
return NotFound();
}
LoadTable = await _context.LoadTable.FirstOrDefaultAsync(m => m.Id == id);
if (LoadTable == null)
{
return NotFound();
}
return Page();
}
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_context.Attach(LoadTable).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!LoadTableExists(LoadTable.Id))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToPage("./Index");
}
private bool LoadTableExists(Guid id)
{
return _context.LoadTable.Any(e => e.Id == id);
}
从上下文:
entity.Property(e => e.Id).HasDefaultValueSql("(newid())");
来自模型:
public partial class LoadTable
{
public Guid Id { get; set; }
}
【问题讨论】:
标签: c# asp.net entity-framework