代码之家  ›  专栏  ›  技术社区  ›  Peter Mounce

可以修改Linq到SQL生成的C#吗?

  •  2
  • Peter Mounce  · 技术社区  · 16 年前

    例如,可以说生成的实体类中的某些属性应该由(比如)验证属性(以及Linq到SQL列属性)修饰,这将非常方便。

    4 回复  |  直到 16 年前
        2
  •  0
  •   Aaron Powell    16 年前

    不,SqlMetal工具是处理C#生成的工具,它在自身内部定义了C#的生成方式(或VB)。

    否则,您将需要编写/查找SqlMetal的自定义实现

        3
  •  0
  •   Marc Gravell    16 年前

    不幸的是,对于分部类,您不能从分部类的另一部分向成员添加属性,即如果SqlMetal定义了属性 Foo ,您不能将属性添加到 在你自己的那一半时间里 .cs .

    这带走了(通常)定制此类文件的更强大的方法之一。。。您可能需要冒险手动编辑生成的文件(完全从dbml分离后),或者编写自己的dbml解析器frmo scratch(可能是使用xslt的HBE)。不容易。

        4
  •  0
  •   Erwin    16 年前

    动态数据中的解决方法是使用可以修饰的元数据类:

    [MetadataType(typeof(Product_Meta))]
     public partial class Product
     {        
       public partial class Product_Meta 
       {
         [Range(5, 50, ErrorMessage = "The product's reorder level must be greater than 5 and less than 50")]
         public object ReorderLevel { get; set; }         
       }  
     }
    

    http://rachelappel.com/asp-net-dynamic-data/custom-validation-in-asp-net-dynamic-data-using-attributes/