it-swarm.com.de

LINQ to Entities, wie ein Datensatz aktualisiert wird

Okay, ich bin neu in EF und LINQ. Ich habe herausgefunden, wie man einfügt und löscht, aber aus irgendeinem Grund scheint UPDATE meinem Zugriff zu entkommen.

Hier ist ein Beispiel meines Codes:

EntityDB dataBase = new EntityDB();
Customer c = new Customer
{
     Name = "Test",
     Gender = "Male
};
dataBase.Customers.AddObject(c);
dataBase.SaveChanges();

Mit dem obigen Befehl wird ein Datensatz erstellt und hinzugefügt.

Customer c = (from x in dataBase.Customers
             where x.Name == "Test"
             selext x).First();
dataBase.Customers.DeleteObject(c);
dataBase.SaveChanges();

Das obige löscht effektiv den angegebenen Datensatz.

Wie aktualisiere ich jetzt? Ich kann anscheinend keine "UpdateObject()" - Methode für die Entitätssammlung finden.

39
Chev

Ändern Sie einfach eine der zurückgegebenen Entitäten:

Customer c = (from x in dataBase.Customers
             where x.Name == "Test"
             select x).First();
c.Name = "New Name";
dataBase.SaveChanges();

Beachten Sie, dass Sie nur eine Entität aktualisieren können (etwas, das EntityObject erweitert, nicht etwas, das Sie mit etwas wie select new CustomObject{Name = x.Name} Projiziert haben).

82
tster

// für ein Update

(from x in dataBase.Customers
         where x.Name == "Test"
         select x).ToList().ForEach(xx => xx.Name="New Name");

// zum Löschen

dataBase.Customers.RemoveAll(x=>x.Name=="Name");
7
Zohaib Iqbal

Beide verfolgen Ihre Änderungen an der Auflistung. Rufen Sie einfach die SaveChanges () -Methode auf, mit der die Datenbank aktualisiert werden soll.

3
Anthony