2012-04-02 10 views
1

Folgen Sie diesem Tutorial (http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/handling-concurrency-with-the-entity -framework-in-einem-asp-net-mvc-application), habe ich gelernt, wie man Daten speichert und Parallelitätsprüfungen an Daten durchführt, bevor die Daten gesendet werden.MVC3 ViewModels Bearbeiten bearbeiteter Daten und Parallelitätsprüfungen

Jetzt habe ich eine Ansicht, die ein ViewModel anstelle des tatsächlichen Datenmodells verwendet.

(1) Wie speichere ich die Daten zurück in die Datenbank, wenn das Formular posten? Ich kann db.SaveChanges() nicht mehr aufrufen; weil die Daten vom Typ ViewModel statt Model sind.

(2) Wie führe ich eine Parallelitätsprüfung der Daten durch?

Ich bin nur auf der Suche nach einem einfachen Beispiel zu folgen.

Danke!

Antwort

0

Es funktioniert auf die gleiche Weise, aber Sie müssen die Daten aus dem ViewModel in das Datenmodell kopieren, wenn es gesendet wird, oder Sie müssen eine neue Entität aus dem Ansichtsmodell erstellen und an das DbSet anhängen.

Sie können ein Tool wie AutoMapper verwenden, um diesen Prozess zu erleichtern.

+0

Muss ich etwas Besonderes mit dem Timestamp-Feld tun, damit die Parallelitätsprüfung funktioniert? – user1304444

+0

@ user1304444 - Sie tun, was auch immer Sie vorher gemacht haben, außer dass Sie sich nicht auf MVC verlassen, um Ihre Entität zu erstellen. Sie müssen es aus den Daten, die von Ihrem Ansichtsmodell zurückgegeben werden, selbst machen. –

+0

Okay. Danke, dass du die einfache Frage beantwortet hast. Ich denke, das wird mich weiterbringen. – user1304444