Eines der mit Spannung erwarteten Features von Entity Framework 4 ist die Fähigkeit, POCO (Plain Old CLR-Objekte) in einer Ignoranz-Persistenz-Weise zu verwenden (dh sie "wissen" nicht, dass sie mit Entity Framework im Gegensatz zu anderen bestehen) anderer Mechanismus).Warum wird "Fixup" für persistente Ignorante POCOs in EF 4 benötigt?
Ich versuche, meinen Kopf einzuwickeln, warum es notwendig ist, Assoziationskorrekturen durchzuführen und FixupCollection in meinem "normalen" Geschäftsobjekt zu verwenden. Diese Anforderung scheint zu implizieren, dass das Geschäftsobjekt den Persistenzmechanismus nicht völlig ignorieren kann (tatsächlich klingt das Wort "fixup" so, als müsste etwas repariert/geändert werden, um mit dem gewählten Persistenzmechanismus zu arbeiten).
ich mich beziehen Insbesondere die Vereinigung Fixup Region, die von dem ADO.NET Entity POCO 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 erzeugt wird. Andere gebräuchliche Persistenz-ignorante ORMs haben keine ähnlichen Beschränkungen.
Liegt das an grundlegenden Designentscheidungen in EF? Gibt es ein gewisses Maß an Nicht-Ignoranz hier, um auch in späteren Versionen von EF zu bleiben? Gibt es eine clevere Möglichkeit, diese Persistenzabhängigkeit vom POCO-Entwickler zu verbergen?
Wie funktioniert das in der Praxis, Ende-zu-Ende? Zum Beispiel verstehe ich, dass Unterstützung erst kürzlich für ObservableCollection hinzugefügt wurde (was für Silverlight und WPF benötigt wird). Gibt es in anderen Softwareschichten Probleme mit den Designanforderungen von EF-kompatiblen POCO-Objekten?
Das ist gutes Hintergrundmaterial, danke. –
Der zweite Link sagt zum Teil: "In Beta1 von Entity Framework 4.0 erhalten Sie in diesem Fall keine automatische Beziehungsverbesserung mit POCO-Entitäten." Ich frage mich, ob das bedeutet, dass eine automatische Reparatur an einem dieser Tage stattfinden wird. –
Der Link ist jetzt unterbrochen .. angeblich migriert werden. – madannes