我正在做一个项目,只有当该DB记录中的最后更新日期未被其他人修改时才需要更新记录。
我在EF中找不到任何办法。
public static void UpdateMaterial(Material updatedMaterial)
{
using (var context = new ERPEntities())
{
context.materials.Attach(updatedMaterial);
context.Entry(updatedMaterial).State = EntityState.Modified;
context.SaveChanges();
}
}
我想仅在updatedMaterial.LastUpdateDate等于DB记录的lastUpdateDate时才保存更改。我该怎么办?
答案 0 :(得分:2)
您正在做的事情称为乐观并发。您需要告诉EF为您执行并发检查。该怎么做取决于你使用的EF版本。
IsRowVersion
或IsConcurrencyToken
[ConcurrencyCheck]
注释
答案 1 :(得分:0)
public static void UpdateMaterial(Material updatedMaterial)
{
using (var context = new ERPEntities())
{
if(updatedMaterial.LastUpdateDate == context.materials.Find(updatedMaterial.Id).LastUpdateDate)
{
context.materials.Attach(updatedMaterial);
context.Entry(updatedMaterial).State = EntityState.Modified;
context.SaveChanges();
}
}
}