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.
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
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