2016-04-25 16 views
2

Es tut mir leid, wenn ich etwas frage, das eine offensichtliche Antwort hat, aber ich habe den ganzen Tag damit verbracht, nach Ressourcen zu suchen und ich finde oder verstehe nicht, wie zu tun ist ein paar grundlegende Sache mit EF7.Entity Framework 7 und ASP MVC 5 - einfache Aufgaben

Also, hier ist meine Frage.

Ich habe eine ASP MVC 5 (VNEXT) -Website und ich benutze Entity Framework 7. Ich habe eine vorhandene Datenbank, also arbeite ich Datenbank-zuerst.

Bisher war alles in Ordnung. Ich habe alles installiert, was erforderlich ist, um meine DNX EF-Befehle zu aktivieren und zu verwenden. Ich rüstete einen dbContext auf und ich bekam alle meine Tabellen als Klassen und eine dbContext-Klasse.

Alles gut, alles gut. Ich war glücklich und fuhr mit meiner Arbeit fort. Allerdings kam ich an einen Punkt, an dem ich eine Eigenschaft einer der generierten (Tabellen-) Klassen erstellen wollte, da ich jQuery unauffällig überprüfte.

Ich habe die folgende Ressource als Referenz: http://ef.readthedocs.org/en/latest/modeling/required-optional.html

Mein erstes Wunder ist, nach dieser Quelle, in der FluentAPI die Eigenschaft als .IsRequired markiert(). Ich glaube, es ist eine ganz andere Sache, die mit einer unauffälligen Validierung nichts zu tun hat. Das nächste, was erklärt wird, ist einfach: Gehen Sie zu Ihrer Klasse und fügen Sie die Annotation Erforderliche Daten hinzu.

Das ist alles gut und gut, und nach dem Hinzufügen funktioniert es so, wie es sollte. Aber ich habe mich sofort gefragt - nun, ich modifiziere die generierten Klassen, werde ich diese Änderungen nicht verlieren, sobald ich das Modell aktualisiert habe?

Das führt mich zu meinem letzten Problem - ich habe lange gesucht, ich habe sogar mit dem Hilfe-Menü von DNX EF gespielt, aber ich bin nicht in der Lage, den richtigen Weg zu finden, den dbContext zu aktualisieren und erstellte Modelle, nachdem ich Änderungen vorgenommen habe zur Datenbank.

Ich glaubte, dass dies etwas ziemlich trivial ist, aber zu meiner Überraschung kann ich keine Ressource finden, die erklärt, wie man das Update macht.

Können Sie mir in die richtige Richtung zeigen und mir sagen, wie EF generierte Modelle und Kontext aktualisieren, nachdem ich Änderungen im Datenbankschema vorgenommen habe, und was ist der beste Weg, Anmerkungen zu den Eigenschaften der generierten Klassen hinzuzufügen?

+0

Lesen Sie auf DTO (Data Transfer Object) und verwenden Sie es als das Modell in der MVC-Framework. Verwenden Sie keine Entitäten als MCV-Modelle –

Antwort

3

Der allgemeine Konsens besteht darin, dass Sie Ihre Datenbankelemente nicht direkt als Eingabe von Benutzern verwenden sollten. Verwenden Sie stattdessen ViewModels, überprüfen Sie diese anhand Ihrer Validierungsregeln, und ordnen Sie sie dann Datenbanktransaktionen zu.

+0

danke, ich würde im Hinterkopf behalten, dass ich ViewModels verwenden sollte. Aber haben Sie eine Idee, wie Sie das Modell aktualisieren können, nachdem ich Änderungen vorgenommen habe? – astian

+0

Gibt es irgendwelche guten Ressourcen über die Verwendung von MVVM in MVC 6? –

+1

Es ist immer noch MVC, auch wenn Sie Ansichtsmodelle verwenden. MVVM funktioniert nicht wirklich in einem Client-Server-Szenario. Sie aktualisieren Ihr Modell einfach von Ihrem Ansichtsmodell im Controller. @astian gibt es ein nugget-Paket namens 'AutoMapper', das helfen könnte. –

1

Als asp.net MVC Entwickler benutze ich Datenbank zuerst und die Aktualisierung der Datenbank ist ein großer Kopfschmerz, so dass ich Metadata Ansatz verwenden und ViewModels, die Zuteilung hilft erstellen.