"Best practice" für die Implementierung von business-Logik-Validierung - Entity Framework
Bin ich mit Entity Framework zum ersten mal, und ich muss hinzufügen, business-Logik vor dem einfügen neuer Objekte in die db, hier sind die Optionen, die ich dachte, über:
- Implementieren von business Logik auf die DataContext-Ebene - durch das überschreiben SaveChanges-Methode
- Implementieren von business Logik für jede Entität mit OnPropertyChanging partielle Methode
- Wickeln Sie den generierten code in einer benutzerdefinierten Klasse implementieren der validation-layer.
Welche Methode ist die beste Praxis bei der Verwaltung von business-Logik auf das Entity Framework
- Welche version von EF sind verwenden Sie?
- Entity Framework, version 4.1
- Gut. Sie können ganz einfach erstellen POCOs dann der link, den ich verwendet habe, ist ein guter Ausgangspunkt. Es ist der nächste option 3.
- Danke für all die tollen Antworten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Blick auf Validierung mit EF - die Validierung wird innerhalb der Unternehmen selbst.
Es ist eine sehr saubere Art und Weise zu organisieren, Ihr Projekt.
Wenn Sie POCOs, der offensichtliche Platz für entity-Validierung ist in der POCO selbst.
Macht es Sinn, dass jede Validierung der Customer-Objekt ist eigentlich in der Customer-Klasse.
Meine Erfahrung:
Validate
Methode, die überprüfen, ob der Zustand der gesamten Konzern auszuführen, ist richtig.Aber all dies funktioniert nur, wenn man immer die gesamte Einheit. Sobald Sie beginnen, verwenden Sie partielle updates und andere Funktionen, die Sie noch haben, um die Validierung anderswo. Das ist ein weiteres +1 für Validierung auf Nachfrage.
Bevorzuge ich eine version von Nummer 3. Ich mag abstrakte Entity Framework sowieso mit einem repository oder etwas ähnliches, wenn ich wollen/müssen, zu ersetzen EF in die Zukunft.
Dann für Validierungs - /business-Logik, die ich verwenden, was Validierungs-Techniken sinnvoll für die Anwendung, aber in der Regel eine Kombination von DataAnnotations (für UI-minimum-Validierung) und ein Validierungs-framework wie Fließend Validation für maximale Validierung/business rules. Diese Validierungs - /business-Logik lebt, in der sowohl die entity-Klasse (DataAnnotations) und in eine Abstraktions-Schicht, die in der Regel einen service-layer in meine Anwendungen.
Vielleicht Ihre Antwort steht in thoses Zeilen 😉
Best-practice-entity-Validierung ASP.NET MVC & ADO.NET Entity Framework
Einen anderen Weg zu prüfen, ist voll componentize aus Ihrem data-access-Schicht von der Geschäftslogik-Schicht vollständig.
Erstellen Sie eine data-access-Schnittstelle, die greift nur auf Entity Framework direkt, dann in ein separates Projekt, ich würde erstellen Sie Ihre business-Logik-Klassen, die die Schnittstelle mit der data access layer durch die Schnittstelle. Keine Entity Framework referernces in Ihre business-Logik-Projekt.
In dieser Weise die Schichten sind, Modulares und leichter zu verteilen als mehrere Baugruppen, die entweder für zwei-tier-oder three-tier-Zugriff.
vielleicht versuchen, darüber zu Lesen, Spezifikation Muster
Können Sie immer, verlängern Sie Ihre Klassen, indem ein anderer die partielle definition der Klasse, die meisten EF-Vorlagen definieren der Einheiten, die als partielle Definitionen nur für die Menschen zu leicht erweitern. Sie möchten dies tun, wenn Sie die Arbeit mit WPF-oder Silverlight, wie die meisten Dinge, die nicht gebunden sind direkt, haben Sie entweder ein boolean und konvertieren möchten, die in einer Farbe, etc. Schreiben Wandler ist langsam und erfordert viel mehr code, um das setup dann nur die Schaffung neuer Absorbentien auf Ihrem BusinessObjects.
Wir haben mit EF 4.0 STE (Self-Tracking-Entities) für eine Weile jetzt, und wir verlängern die meisten von Ihnen mit unseren eigenen partiellen Definitionen. Wir änderten ein wenig die T4-Vorlage, die erstellt die STEs zu ermöglichen den Zugriff auf Konstruktor auf die benutzerdefinierte partiellen Klassendefinition und andere kleine Verbesserungen.
Artikel aus der Zeitschrift Visual Studio Magazine Auseinandersetzung mit der Frage:
http://visualstudiomagazine.com/articles/2012/04/01/integrating-validation-with-the-entity-framework.aspx