2016-08-27 3 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가 필요합니다. 행만 수정하고 추가하지 않는다고 가정합니다. 당신이 (예를 들어 행) 만 한 특정 행을 수정하려면, 다음 원래의 코드가 부분적으로 정확했다 :

값으로 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(); 
}