2009-06-18 6 views
0

:Linq에 -를 사용하여 열을 증가시킵니다 기본 키를이 코드를

Message message = new Message(); 
    message.Id = 5; 
    message.EntityKey = context.CreateEntityKey("MessageSet", entity); 
    message.Votes++; 
    context.Attach(entity); 
    context.ObjectStateManager.GetObjectStateEntry(entity.EntityKey).SetModifiedProperty("Votes"); 
    Save(); 

그러나 물론, 투표 0

으로 초기화 어떻게

Update Messages set Votes=Votes+1 where Id = 5 
같은 생성 일

?? Thx

답변

0

나는 이것을 직접 구현할 수 있다고 생각하지 않지만 일부 가져 오기 기능을 사용하고 필요한 것을하기 위해 SP를 사용할 수 있습니다.

1

LINQ to Entities는 OR 매퍼이므로 먼저 업데이트해야하는 엔터티를 쿼리하고 코드의 개체로 업데이트 한 다음 ObjectContext에서 Update 명령을 실행하여 해당 개체를 유지합니다. 해당 엔티티로 변경됩니다. 중요한 일이지만 초기에 파악하기가 어렵지만 엔티티 프레임 워크, NHibernate, LINQ to SQL 등과 같은 ORM을 사용하는 이유는 SQL을 작성하고 객체를 대신 사용할 필요가 없기 때문입니다.

Message msg = context.Messages.First(m => m.Id == 5); 
msg.Votes += 1; 

context.SaveChanges(); 

SaveChanges를에 대한 호출은, 당신을 위해 각 업데이트, 삽입을위한 하나의 SQL CUD 문을 생성 및/또는 삭제합니다 :

다음은 당신이 필요로해야한다.

+0

네, 그렇지만 답은 동일한 정보를 새로 고치는 동시 사용자를 다룰 때 잠재적으로 실패 할 수있는 문제를 해결할 것입니다. –

+0

예,하지만 원하지 않는 선택 = / –