2009-08-06 6 views
2

Ich überprüfe diese ordentlich Templated Helpers, die juts mit der neuesten Vorschau von ASP.NET MVC veröffentlicht wurden.asp.net mvc 2 Vorschau - Templated Helpers linq zu sql

Ich bemerke, dass ich die Klassen nach Bedarf dekorieren kann, aber ich denke, es wird ein wenig unordentlich mit Linq 2 Sql, wenn ich die Klassen neu generieren muss, wenn ich Schemaänderungen vornehmen.

Hat jemand einen empfohlenen Ansatz, wie man die Template-Helfer ausnutzen kann, aber mir immer noch erlaubt, Linq 2 Sql zu verwenden?

Antwort

4

Was Sie suchen, ist eine "Buddy Class". Scott Gu erwähnt es in seinem Beitrag für ASP.NET MVC 2 CTP 1, geht aber nicht darauf ein.

Wie auch immer, das ist mein Verständnis davon. Angenommen, Sie haben eine Tabelle namens Ninja (danke Phil Haack! ;-) und Sie haben offensichtlich die entsprechende linq to sql-Klasse, die zusammen mit allen anderen linq to sql-Klassen generiert wird.

Was Sie jetzt tun müssen, ist Ihre eigene partielle Klasse mit einem Attribut ‚MetadataType‘ erstellen wie folgt:

[MetadataType(typeof(Ninja_Metadata))] 
public partial class Ninja 
{ 
    //Custom model stuff 
} 

Jetzt können Sie Ihre ‚Buddy Metadata Klasse‘ erstellen, in dem Sie Attribute Eigenschaften hinzufügen können, sind generiert von der Linq zu SQL Designer:

public class Ninja_Metadata 
{ 
    [DisplayName("Shurikens")] 
    public int ShurikenCount { get; set; } 
    [DisplayName("Blowgun Darts")] 
    public int BlowgunDartCount { get; set; } 
} 

Süße Feed?

HTHS
Charles

Ps. Die Verwendung dieser "Buddy-Klassen" eignet sich auch hervorragend zum Hinzufügen von Unterstützung für die DataAnnotation-Validierungsattribute.

+0

Dank Charlino, dachte ich in die gleiche Richtung, aber ich war unsicher, da es eine Menge Aufwand schien, eine Spiegelklasse zu erstellen (in manchen Fällen denke ich, dass alle Eigenschaften Attribute benötigen). Ich denke, ich könnte es jedes Mal, wenn ich Änderungen an dem Schema mache, "aufspielen". – Dkong

+0

Ich muss zugeben, ich bin ein wenig verwirrt, warum das primäre ASP.NET MVC (dh Nerddinner) Beispiel verwendet Linq2Sql, dann die Vorschau für ASP.NET MVC 2 Vorlagen Helper verwendet Entity Framework, um Vorlagen aufgrund der Tatsache, dass Linq2Sql zu demonstrieren spielt nicht so gut mit Vorlagen. Es ist ein bisschen inkonsequent IMO – Dkong