2011-07-06 12 views
0

私のEFデザイナで計算されるrowversion(timestamp)の列があります。計算された値をEntityFramework 4.1で上書きする方法DbContext API

 myEnt.rowversion = screenRowVersion; 

ような直接性を介して、コードの値を設定する

SaveChanges()が呼び出され、今効果を有する、のSQLServerへのトレースは、rowversionの元の値が使用されていることを示しています。

DbContext APIに外部値の計算値を受け入れることはできますか?

答えて

1

EFでは、計算された値を上書きすることはできません。常に、データベースからロードされた元の値が使用されます。

context.Entry(myEnt).OriginalValues["rowversion"] = screenRowVersion; 

しかし、いずれにせよ、タイムスタンプの場合にはそれが必要とされていない:そこはEFをカンニングして、コンテキストによって追跡元の値を変更するには、このための回避策があります。あなたは古いタイムスタンプと新しいタイムスタンプを持っていますので、データベースへのラウンドトリップなしでcompare them in your applicationを実行できます。

関連する問題