Linq to Entities- 기본 키를 사용하여 열을 증가시킵니다.
-
06-07-2019 - |
문제
이 코드가 있습니다.
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
?? 고마워
해결책
나는 당신이 이것을 직접 달성 할 수 있다고 생각하지 않지만, 당신은 일부를 사용할 수 있습니다. 가져 오기 기능 SP를 사용하여 필요한 작업을 수행하십시오.
다른 팁
Linq to Entities가 또는 맵퍼이므로 일반적인 아이디어는 먼저 업데이트 해야하는 엔티티 또는 엔티티에 대해 쿼리하고 코드의 객체로 업데이트하고 ObjectContext에서 업데이트 명령을 발행하여 해당 엔티티의 변경 사항을 지속한다는 것입니다. . 그것은 핵심적인 일이지만 종종 초기에 파악하기는 어렵지만 Entity 프레임 워크, nhibernate, linq에서 SQL 등과 같은 ORM을 사용하는 이유는 SQL을 쓰고 대상을 대신 사용해야 할 필요성을 제거하는 것입니다.
다음은 필요한 것입니다.
Message msg = context.Messages.First(m => m.Id == 5);
msg.Votes += 1;
context.SaveChanges();
SaveChanges에 대한 호출은 귀하를 위해 SQL CUD 문을 생성합니다. 각 업데이트마다 하나씩, 삽입 및/또는 삭제됩니다.
제휴하지 않습니다 StackOverflow