各行

2016-08-27 1 views
1

のためのSaveChanges()を使用するにはどうすれば私は今、この行各行

if (_Shifts != null) 
{ 
    ContexManager contex = new ContexManager(); 
    Shift _sht;   
    _Shifts[0].MyStartTime = dtStart1.Value.TimeOfDay; 
    _Shifts[0].MyEndTime = dtEnd1.Value.TimeOfDay; 
    _Shifts[0].MyName = txtShift1.Text; 
    contex.SaveChanges(); 
} 

それは保存しない変更を保存する方法がわからない今のこれらの行を更新したい今ちょうど3行を持つテーブルを持っています、データベースの変更を保存する方法、更新行[0]です。

答えて

0

私はこの質問が既に回答されている実感が、完全性のために、ここではより論理的な答えがある)(

if (_Shifts != null) 
{ 
ContexManager contex = new ContexManager(); 
Foreach(var shiftitem in _Shifts) 
{ 
    shiftitem.MyStartTime = dtStart1.Value.TimeOfDay; 
    shiftitem.MyEndTime = dtEnd1.Value.TimeOfDay; 
    shiftitem.MyName = txtShift1.Text; 
    context.Shifts.Add(shiftitem); 

} 
contex.SaveChanges(); 
} 
+0

私はあなたが行を削除する必要が続いて – sadeq

+0

を更新したいとsavechanges() – Sajeetharan

+0

他のテーブルでこの行を外部キーとして使用しているため、行を削除しないようにしてください – sadeq

0

を値をループを実行し、最終的にコレクションに追加し、SaveChangesメソッドを実行します。

if (_Shifts != null) 
{ 
    ContexManager contex = new ContexManager(); 
    Foreach(var shiftitem in _Shifts) 
    { 
     shiftitem.MyStartTime = dtStart1.Value.TimeOfDay; 
     shiftitem.MyEndTime = dtEnd1.Value.TimeOfDay; 
     shiftitem.MyName = txtShift1.Text; 
     contex.Shifts.Attach(shiftitem); 
     contex.Entry(shiftitem).State = EntityState.Modified; 
    } 
    contex.SaveChanges(); 
} 

これはSystem.Data.EntityStateを使用するため、using System.Dataが必要です。 行を変更していて、何も追加していないと仮定します。あなたが(例えば最初行)のみ1特定の行を変更したい場合は、あなたの元のコードは、部分的に正しかった:

値との3行を追加
if (_Shifts != null) 
{ 
    ContexManager contex = new ContexManager(); 
    Shift _sht = _Shifts[0];   
    _sht.MyStartTime = dtStart1.Value.TimeOfDay; 
    _sht.MyEndTime = dtEnd1.Value.TimeOfDay; 
    _sht.MyName = txtShift1.Text; 
    contex.Shifts.Attach(_sht); 
    contex.Entry(_sht).State = EntityState.Modified; 
    contex.SaveChanges(); 
}