2009-08-04 12 views
0

Nachdem ich .NET für mehrere Jahre verwendet habe, habe ich die letzten Monate im fernen Land von Ruby on Rails verbracht. Während ich klar sehen kann, wo viel von Microsofts MVC-Framework seinen Einfluss hat, fehlt mir eines der Dinge, die ich bei der Entwicklung in .NET plötzlich nicht finde, die Rails-Modell-Callbacks."Callbacks" in Linq-zu-SQL/ASP.NET MVC

Insbesondere können Sie einen Rückruf zu before_save, after_save, before_create, after_create usw. hinzufügen und dann eine Funktion angeben, die an diesen Punkten in der Ausführung aufgerufen werden soll (was der aspektorientierten Programmierung sehr ähnlich zu sein scheint).

Meine Frage ist out of the Box, bietet .NET 3.5/ASP.NET MVC etwas Ähnliches wie die Rückrufe in Rails? Zum Beispiel, wenn ich eine inserted_datetime und updated_datetime Spalte in einer meiner Datenbanktabellen habe, anstatt sicherzustellen, dass diese Spalten im Controller aktualisiert werden, würde ich gerne in der Lage sein, mein Modell zu sagen, jedes Mal, wenn das "Group" -Objekt bekommt gespeichert in der Datenbank, aktualisieren Sie die Spalte updated_datetime.

Ist das möglich? Macht diese Frage überhaupt Sinn?

Antwort

0

Out of the Box LINQ to SQL macht ein bisschen davon. Es ruft OnMYFIELDhanging- und OnMYFIELDChanged-Ereignisse auf.

Nicht so funktionsreich, wie Sie jetzt gewohnt sind, aber ich denke, dass Sie das selbst verlängern können.

Nicht einmal sicher, ich habe diese Antwort richtig, um ehrlich zu sein.

+0

+1 stimme ich zu. Alle L2S-Entitätsobjekte sind partiell und Sie können sie problemlos mit Ereignissen erweitern, die Ihnen eine detailliertere Möglichkeit zur Verwaltung von Entitätsänderungen bieten. –

+0

Danke dafür. Ein bisschen so viel, aber nie wirklich musste es tun. – griegs

+0

Akzeptieren die Antwort, da ich denke, das ist wirklich der beste Weg. Leider hätte ich lieber * weniger * Granularität. :) Wenn ich bei der Standardkonfiguration Änderungen abfangen möchte, muss ich daran denken, jedes Mal mehr Code zu schreiben, wenn ich ein neues Feld hinzufüge. – jerhinesmith