【发布时间】:2009-08-06 02:43:23
【问题描述】:
我正在查看这些简洁的模板化帮助程序,它们已随 ASP.NET MVC 的最新预览版一起发布。
我注意到我可以根据需要装饰类,但我认为如果在进行架构更改时必须不断重新生成类,Linq 2 Sql 会有点混乱。
是否有人推荐了如何利用模板助手但仍允许我使用 Linq 2 Sql 的方法?
【问题讨论】:
我正在查看这些简洁的模板化帮助程序,它们已随 ASP.NET MVC 的最新预览版一起发布。
我注意到我可以根据需要装饰类,但我认为如果在进行架构更改时必须不断重新生成类,Linq 2 Sql 会有点混乱。
是否有人推荐了如何利用模板助手但仍允许我使用 Linq 2 Sql 的方法?
【问题讨论】:
您所追求的是“伙伴班”。 Scott Gu 在他的 ASP.NET MVC 2 CTP 1 帖子中提到了它,但没有深入探讨。
反正这是我的理解。假设您有一个名为 Ninja 的表(感谢 Phil Haack!;-),并且您显然拥有与所有其他 linq to sql 类一起生成的相应 linq to sql 类。
您现在需要做的是创建您自己的带有 'MetadataType' 属性的部分类,如下所示:
[MetadataType(typeof(Ninja_Metadata))]
public partial class Ninja
{
//Custom model stuff
}
现在您创建“好友元数据类”,您可以在其中将属性添加到由 linq to sql 设计器生成的属性:
public class Ninja_Metadata
{
[DisplayName("Shurikens")]
public int ShurikenCount { get; set; }
[DisplayName("Blowgun Darts")]
public int BlowgunDartCount { get; set; }
}
甜食?
HTH
查尔斯
附言。使用这些“伙伴类”也非常适合添加对 DataAnnotation Validation 属性的支持。
【讨论】: