0

データベースに値があります

public int Rev { get; set; }

行が更新されるたびにRev+1に変更したいのですが、Entity Frameworkを初めて使用するため、これをプログラムする方法がわかりません。誰か助けてもらえますか?

4

2 に答える 2

1

新しい部分クラスを作成して、EFオブジェクトのSaveChanges()メソッドをオーバーライドできます。SaveChanges()メソッドでは、の各エントリをチェックYourTableEntityして、変更されているかどうかを確認し、変更されている場合はRevプロパティを増やすことができます。

public partial class YourDBNameDBEntities : DbContext
{
    public override int SaveChanges()
    {
        foreach (var entry in this.ChangeTracker.Entries<YourTableEntity>().ToList())
        {
            if (entry.State == System.Data.EntityState.Modified)
            {
                entry.Entity.Rev++;
            }
        }
        return base.SaveChanges();
    }
}
于 2013-02-21T20:40:35.097 に答える
0

テーブルを更新するとフィールドがインクリメントされるトリガーを作成できます。

これを行うには、CreateDatabaseIfNotExistsから継承されたクラス、またはIDatabaseInitializerを実装してメソッドSeedをオーバーライドした別のクラスを作成します。

簡単な例を次に示します。

class CdineWithTrigger : CreateDatabaseIfNotExists<RepositoryContext>
{
   protected override void Seed(RepositoryContext context)
   {
      context.Database.ExecuteSqlCommand("YOUR SQL CORE FOR ADDING A TRIGGER");
   }
}
于 2013-02-21T20:33:25.623 に答える