2016-06-24 4 views
-2

私のコントローラには削除機能があります。私の関数はデータベースから削除し、私は正常に動作しますが、データベースから永久に削除するのではなく、アクティブにして表示するだけです。データベース上に存在することになります。削除機能を有効にする方法データベース内の値を有効にする

私はActiveという列を持っていて、それは1です。それを永久に削除するのではなく、どのようにアクティブにすることができますか?

ここはコントローラのコードです。

public ActionResult Deletefunction(Part model) 
    { 
     try 
     { 
      using (dbContext db = new dbContext()) 
      { 
       Part del = db.Parts.Where(c => c.id == model.PartId).FirstOrDefault(); 
       db.Parts.Remove(del); 
       db.SaveChanges(); 
      } 
      return View(); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 

    } 

あなたのお手伝いをしてくれてありがとうございます。

+1

アクティブはビットフィールド、1 =真、0 =偽とします。あなたはちょうどそれをやることをどうして防ぐのですか? –

答えて

0

PartオブジェクトにActiveという列があるとします。単にdeleteステートメントを更新に変更するだけです。

public ActionResult Deletefunction(Part model) 
    { 
     try 
     { 
      using (dbContext db = new dbContext()) 
      { 
       Part del = db.Parts.Where(c => c.id == model.PartId).FirstOrDefault(); 
       // Changed from Delete to update 
       del.Active = 0; 
       db.SaveChanges(); 
      } 
      return View(); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 

    } 

どこでもあなたがアクティブでないものを表示しないようにしたい場合は、あなたがwhere句などを追加する必要があります、これらを表示する注意。

var onlyActiveParts = db.Parts.Where(p => p.Active == 1); 
関連する問題