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.
Ä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).
// 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");
Beide verfolgen Ihre Änderungen an der Auflistung. Rufen Sie einfach die SaveChanges () -Methode auf, mit der die Datenbank aktualisiert werden soll.