这是我在此页面上发布的第一个问题。我会尽量保持清醒。我有像这样的服务模型
public class DowntimeService
{
public int ID { get; set; }
public string Work_Center { get; set; }
public string Asset_ID { get; set; }
[Timestamp]
public DateTime? Start_Time { get; set; }
public DateTime? End_Time { get; set; }
}
其中Start_Time
使用SQL db中的Getdate()
函数。我的问题是,当我尝试更新End_Time
属性时,我得到并发错误。
这是我的控制器:
[HttpPost]
public IActionResult Edit(int id, DowntimeService downtimeService)
{
if (id != downtimeService.ID)
{
return NotFound();
}
if (ModelState.IsValid)
{
_context.Entry(downtimeService).State = EntityState.Modified;
_context.Entry(downtimeService).Property(t => t.Start_Time).IsModified = false;
_context.Update(downtimeService);
_context.SaveChanges();
return RedirectToAction(nameof(Index));
}
return View(downtimeService);
}
有关如何更新end_Time
属性的任何想法?
答案 0 :(得分:1)
我找到了适合我的解决方案。我使用ModelBuilder映射SQL表中的默认值。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<DowntimeService>(entity =>
{
entity.Property(t => t.Start_Time)
.HasColumnName("Start_Time")
.HasColumnType("datetime")
.HasDefaultValueSql("getdate())");
});
}
我对EF很新,总有一些新东西需要学习。谢谢你们。