【问题标题】:Custom TimeStamp property in EF code first首先在 EF 代码中自定义 TimeStamp 属性
【发布时间】:2023-03-20 15:25:01
【问题描述】:

我首先在我的项目中使用 EF 6.1 代码。对于以下实体,我想在 CodeName 值更改时增加数据库中的 Version 字段值(我在断开连接的情况下更新我的实体):

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 中完成这项工作吗?

【问题讨论】:

  • 您应该在数据库触发器中执行此操作以防止并发问题。

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


【解决方案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;
    }

【讨论】:

  • 我在断开连接的环境中工作,所以我不能使用IsModified 属性。
猜你喜欢
  • 1970-01-01
  • 2019-08-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多