0

私は mvc アプリで ef コードの最初のモデルを使用しています。モデル化する必要があるのは製品、temp_product です。私の製品の編集ビューは、製品モデルにバインドされています。ユーザーが行ったすべての変更が製品モデルに反映されることを示します。コントローラーで、更新されたすべての値を製品モデルからコピーし、それらを temp_product に設定し、関数を呼び出してデータベース内のエンティティ temp_product を更新しています。しかし、temp_product に古い値が含まれている間に製品テーブルが更新されています。どうすればこれを解決できますか?

私が使用したエンティティ値をコピーするには..

public class Sync
{ 
   public static void CopyProperties(dynamic product, dynamic tempProduct) 
   { 
      PropertyInfo[] productPI = product.GetType().GetProperties(); 
      PropertyInfo[] tempProductPI =tempProduct.GetType().GetProperties(); 
      foreach (PropertyInfo temp_prodPI in tempProductPI) 
         foreach (PropertyInfo prodPI in productPI) 
         if (prodPI.Name == temp_prodPI.Name && temp_prodPI.CanWrite) 
         temp_prodPI.SetValue(tempProduct,prodPI.GetValue(product,nul‌​l), null); 
   }

_temp_productRepository.Update(temp_product);

そして更新機能で

public void Update(T entity)
{
if (entity == null)throw new ArgumentNullException("entity"); 
this._context.SaveChanges();
}
4

0 に答える 0