web-dev-qa-db-fra.com

Mettre à jour plusieurs lignes dans Entity Framework à partir d'une liste d'identifiants

J'essaie de créer une requête pour la structure d'entité qui me permettra de prendre une liste d'identifiants et de mettre à jour un champ qui leur est associé.

Exemple en SQL:

UPDATE Friends
SET msgSentBy = '1234'
WHERE id IN (1, 2, 3, 4)

Comment convertir les éléments ci-dessus dans un cadre d'entité?

69
allencoded

quelque chose comme ci-dessous

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();
}

MISE À JOUR:

vous pouvez mettre à jour plusieurs champs comme ci-dessous

friends.ForEach(a =>
                      {
                         a.property1 = value1;
                         a.property2 = value2;
                      });
131
Damith

Il y a deux projets open source permettant cela: EntityFramework.Extended et E ntity Framework Extensions .

11
Peter Kerr