D'accord, je suis donc nouveau pour EF et LINQ. J'ai compris comment INSÉRER et SUPPRIMER, mais pour une raison quelconque, MISE À JOUR semble échapper à ma compréhension.
Voici un exemple de mon code:
EntityDB dataBase = new EntityDB();
Customer c = new Customer
{
Name = "Test",
Gender = "Male
};
dataBase.Customers.AddObject(c);
dataBase.SaveChanges();
Ce qui précède crée et ajoute un enregistrement très bien.
Customer c = (from x in dataBase.Customers
where x.Name == "Test"
selext x).First();
dataBase.Customers.DeleteObject(c);
dataBase.SaveChanges();
Ce qui précède supprime effectivement l'enregistrement spécifié.
Maintenant, comment puis-je mettre à jour? Je n'arrive pas à trouver une méthode "UpdateObject()
" sur la collection d'entités.
Modifiez simplement l'une des entités renvoyées:
Customer c = (from x in dataBase.Customers
where x.Name == "Test"
select x).First();
c.Name = "New Name";
dataBase.SaveChanges();
Remarque, vous ne pouvez mettre à jour qu'une entité (quelque chose qui étend EntityObject, pas quelque chose que vous avez projeté en utilisant quelque chose comme select new CustomObject{Name = x.Name}
// pour mise à jour
(from x in dataBase.Customers
where x.Name == "Test"
select x).ToList().ForEach(xx => xx.Name="New Name");
// pour supprimer
dataBase.Customers.RemoveAll(x=>x.Name=="Name");
Ils suivent tous les deux vos modifications dans la collection, appelez simplement la méthode SaveChanges () qui devrait mettre à jour la base de données.