2012-08-15 3 views
2

내 데이터베이스에 업데이트 할 항목이 하나 있습니다. 이 같은 일을 시도했지만 작동하지 않습니다 :linq 확장 방법, 단일 항목의 여러 속성을 업데이트하는 방법은 무엇입니까?

db.Items.Where(t => t.Id == itemId).Select(t => 
      { 
       t.CurrentValue = 99; 
       t.TotalValue = 999; 
      }); 

은 무엇 작동하는 코드이지만, 나는이 비효율적이라고 생각 (내가 잘못?) :

db.Items.Single(t => t.Id == itemId).TotalValue = 999; 
db.Items.Single(t => t.Id == itemId).CurrentValue = 99; 
db.SaveChanges(); 

가 있는가 하나의 쿼리로 단일 객체의 여러 속성을 업데이트하는 방법?

답변

3

정확합니다. db.Items.Single(...)을 여러 번 실행하면 차선책이 될 수 있습니다.

한 번 호출 한 후 속성을 참조하는 것이 더 효율적한다 :

var item = db.Items.Single(t => t.Id == itemId); 
item.TotalValue = 999; 
item.CurrentValue = 99; 
db.SaveChanges(); 
+0

오. 이것은 완벽하게 작동합니다. 고맙습니다. 이제는 db 객체를 사용하여 항목 객체를 연결하는 방법을 어떻게 알 수 있을까요? 나는 그것을 어디에도 지정하지 않았다. – ojek

관련 문제