Warum ist die "Korrektur" erforderlich für die Persistenz Unwissend POCO in EF 4?
Einer der viel erwartete features von Entity Framework 4 ist die Möglichkeit zum verwenden von POCO (Plain Old CLR Objects) in einer Persistenz Ignoranten Art und Weise (d.h. Sie "wissen" nicht, dass Sie beibehalten wird, mit Entity Framework vs. einen anderen Mechanismus).
Ich versuche, wickeln Sie meinen Kopf herum, warum es notwendig ist, durchführen association Korrekturen und verwenden FixupCollection in meinem "einfachen" business-Objekt. Diese Anforderung scheint zu implizieren, dass die business-Objekts kann nicht sein, völlig unwissend von der Persistenz-Mechanismus nach alle (eigentlich ist das Wort "Korrektur" klingt wie etwas, das behoben werden muss/verändert die Arbeit mit dem gewählten persistenzmechanismus).
Speziell beziehe ich mich auf die Vereins-Korrektur-region generiert der ADO.NET POCO Entity Generator, z.B.:
#region Association Fixup
private void FixupImportFile(ImportFile previousValue)
{
if (previousValue != null && previousValue.Participants.Contains(this))
{
previousValue.Participants.Remove(this);
}
if (ImportFile != null)
{
if (!ImportFile.Participants.Contains(this))
{
ImportFile.Participants.Add(this);
}
if (ImportFileId != ImportFile.Id)
{
ImportFileId = ImportFile.Id;
}
}
}
#endregion
sowie die Verwendung von FixupCollection. Andere häufige Persistenz-ignorant ORMs nicht haben ähnliche Einschränkungen.
Ist dies aufgrund von grundlegenden design-Entscheidungen in EF? Ist einige level von nicht-Unwissenheit, hier zu bleiben, auch noch in späteren Versionen von EF? Ist es ein cleverer Weg, dies zu verbergen Persistenz Abhängigkeit von der POCO-Entwickler?
Wie funktioniert das in der Praxis aus, Ende-zu-Ende? Zum Beispiel, ich verstehe-Unterstützung wurde erst vor kurzem Hinzugefügt, für die ObservableCollection ist (was gebraucht wird für Silverlight und WPF). Gibt es Fallstricke, die in anderen software-Schichten aus der design-Anforderungen des EF-kompatibel POCO-Objekte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ein paar Erklärungen - überprüfen Sie Sie heraus!
POCO Template-Code-Generierungsoptionen (EF-team blog)
Und überprüfen Sie auch diese POCO in das Entity-Framework, Teil 1, die hat auch einige Abschnitte auf, welche Korrekturen sind und was Sie für nötig.
In Beta1 of Entity Framework 4.0, you do not get automatic relationship fix-up in this case with POCO entities.
ich Frage mich, ob das bedeutet, dass die automatische Korrektur geschehen wird einer von diesen Tagen.