首先在EF代码中自定义TimeStamp属性

时间:2014-12-10 05:32:53

标签: c# entity-framework ef-code-first timestamp disconnected-environment

我在项目中首先使用EF 6.1代码。对于以下实体,当 VersionCode值发生更改时(我在断开连接的场景中更新我的实体)时,我想在数据库中增加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中完成这项工作?

1 个答案:

答案 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;
    }