2013-03-08 4 views
0

어떤 이유로 dbase.SaveChanges() 메서드는 roomid이 null이어야하므로 데이터베이스를 업데이트 할 수 없습니다. 그러나 디버거에서 room1.id이 2로 설정되어 있다고 표시합니까?모델이 데이터베이스를 업데이트하지 않습니다.

누군가 제발 도와 줄 수 있습니까?

private void button1_Click(object sender, EventArgs e) 
{ 
    Room room1 = new Room(); 
    room1.Id = 2; 
    dbase.AddToRoom(room1); 
    dbase.SaveChanges(); 
} 
+2

하지만 ... __are__을 2로 설정 ... –

+0

아마도 ID는 ID 열입니까? – m0s

+0

삽입 메서드를 호출하고 업데이트하려고합니다. 엔터티를 검색하고 새 값을 설정해야합니다. 그 후 SaveChanges() 메소드를 호출하면됩니다. –

답변

0

내가이가 더 SQL에 엔티티 프레임 워크 또는 LINQ 것 같아, 실제로 ADO.NET 모르겠어요.

당신이하려는 일도 분명하지 않습니다. 데이터베이스에 새 회의실을 추가하려는 경우 일부 속성을 설정하는 것이 좋습니다. 그렇지 않으면 빈 방을 삽입하는 것입니다.

var room1 = new Room(); 
room1.RoomNumber = 4; 
room1.Available = true; 
//... 
dbase.AddToRoom(room1); 
dbase.SaveChanges(); 

이 당신이 당신이 방에 대한 ID를 지정할 필요가 없습니다, 무엇을하려고하는 경우 (ID 열에는 것입니다 자동 증가로 설정되어있는 경우.)

당신이 경우이 뭔가를 할 수있는 새로운 하나를 삽입 갱신 방 대신 에 노력하고있다 :

var roomToUpdate = dbase.Rooms.Where(x => x.id == id).FirstOrDefault(); 
roomToUpdate.Property ="something"; 
//... 
dbase.Update(roomToUpdate) 
dbase.SaveChanges(); 

다시 말하지만, 내가 틀렸다면 그렇게하려고 정확하게는 완전히 명확하지, 탄원 e 조금 더 정교하게.

관련 문제