0

プロジェクトで最初に EF 6.1 コードを使用しています。Version次のエンティティの場合、データベースのフィールド値をインクリメントしたいのは、値が変更されたときだけです(接続されていないシナリオでエンティティを更新します):CodeName

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でこの作業を行う方法はありますか?

4

1 に答える 1

1

プロパティの状態が変化したかどうかを確認できます。ここMSDNリンク

コードを更新すると、次のようになります。

  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;
    }
于 2014-12-10T07:01:59.137 に答える