我在项目中首先使用EF 6.1代码。对于以下实体,当仅 Version
和Code
值发生更改时(我在断开连接的场景中更新我的实体)时,我想在数据库中增加Name
字段值:
public class Product
{
public int Id {get; set;}
public string Code {get; set;}
public string Name {get; set;}
public string Title {get; set;}
public int Version {get; set;}
}
使用[TimeStamp]
注释会导致[TimeStamp]
属性在实体的任何属性值发生更改时发生更改。
有没有办法在EF中完成这项工作?
答案 0 :(得分:1)
您可以检查属性的状态是否已更改。Here MSDN Link
您更新的代码可能如下所示。
public void Update(Product product) {
if (context.Entry(product).Property(u => u.Code).IsModified && context.Entry(product).Property(u => u.Name).IsModified) {
product.Version += 1;
}
context.Entry(product).State = System.Data.Entity.EntityState.Modified;
}