2009-08-06 49 views
2

我正在檢查這些整齊的模板幫助,已經發布了最新的ASP.NET MVC預覽。asp.net mvc 2預覽 - 模板幫助linq to sql

我注意到我可以根據需要裝飾類,但我認爲如果我在進行模式更改時必須重新生成類,那麼它會對Linq 2 Sql有點混亂。

是否有人推薦如何利用模板助手的方法,但仍然允許我使用Linq 2 Sql?

回答

4

你在追求的是'好友類'。 Scott Gu在ASP.NET MVC 2 CTP 1的帖子中提到它,但沒有涉及它。

無論如何,這是我對它的理解。假設你有一個名爲Ninja的表(感謝Phil Haack !--),你顯然有相應的linq到sql類,它是沿着所有其他linq到sql類生成的。

你現在需要做的是用「MetadataType」屬性,像這樣創建自己的部分類:

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

現在你創建你的「好友元數據類」,您可以添加屬性,該屬性的特性由linq生成sql設計器:

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

甜料?

HTHS
查爾斯

詩篇。這些「夥伴類」的使用對於添加對DataAnnotation Validation屬性的支持也非常有用。

+0

感謝Charlino,我在想同樣的觀點,但我並不確定,因爲創建一個鏡像類似乎很費事(在某些情況下,我猜所有的屬性都可能需要屬性)。我想我每次修改架構時都可以'創建'。 – Dkong 2009-08-06 08:30:26

+0

我必須承認,對於爲什麼主要的ASP.NET MVC(即Nerddinner)示例使用Linq2Sql,然後預覽ASP.NET MVC 2模板幫助程序使用實體框架來演示模板,我有點困惑,因爲Linq2Sql不能很好地與模板一起玩。這與IMO有點不一致 – Dkong 2009-08-06 08:34:31