ID 목록을 가져와 관련 필드를 업데이트 할 수있는 엔터티 프레임 워크에 대한 쿼리를 만들려고합니다.
SQL의 예 :
UPDATE Friends
SET msgSentBy = '1234'
WHERE id IN (1, 2, 3, 4)
위의 내용을 엔티티 프레임 워크로 어떻게 변환합니까?
답변
아래와 같이
var idList=new int[]{1, 2, 3, 4};
using (var db=new SomeDatabaseContext())
{
var friends= db.Friends.Where(f=>idList.Contains(f.ID)).ToList();
friends.ForEach(a=>a.msgSentBy='1234');
db.SaveChanges();
}
최신 정보:
아래와 같이 여러 필드를 업데이트 할 수 있습니다.
friends.ForEach(a =>
{
a.property1 = value1;
a.property2 = value2;
});
답변
var idList=new int[]{1, 2, 3, 4};
var friendsToUpdate = await Context.Friends.Where(f =>
idList.Contains(f.Id).ToListAsync();
foreach(var item in previousEReceipts)
{
item.msgSentBy = "1234";
}
foreach를 사용하여 조건을 충족하는 각 요소를 업데이트 할 수 있습니다.
다음은보다 일반적인 방법의 예입니다.
var itemsToUpdate = await Context.friends.Where(f => f.Id == <someCondition>).ToListAsync();
foreach(var item in itemsToUpdate)
{
item.property = updatedValue;
}
Context.SaveChanges()
일반적으로 await for db 쿼리와 함께 비동기 메서드를 가장 많이 사용합니다.