能够以某种方式说生成的实体类中的某些属性应该由(例如)验证属性(以及 Linq To SQL 列属性)修饰,这将非常方便。
它是某个地方的 T4 模板吗?或者还有其他方法可以给猫剥皮吗?
能够以某种方式说生成的实体类中的某些属性应该由(例如)验证属性(以及 Linq To SQL 列属性)修饰,这将非常方便。
它是某个地方的 T4 模板吗?或者还有其他方法可以给猫剥皮吗?
Damien Guard 编写了可自定义的 T4 模板。看:
http://damieng.com/blog/2008/09/14/linq-to-sql-template-for-visual-studio-2008
...和:
不,SqlMetal 工具用于处理 C# 的生成,它在其内部定义了 C# 的生成方式(或 VB 的生成方式)。
我不熟悉您想要的模板样式,但您可以尝试扩展生成的类(如果它们没有那么大的变化),因为它们只是部分类。
否则,您将需要编写/查找 SqlMetal 的自定义实现
不幸的是,对于部分类,您不能将属性添加到部分类的另一部分的成员中 - 即,如果 SqlMetal 定义了 property Foo
,则不能Foo
在您自己的一半中添加属性.cs
。
这消除了自定义此类文件的(通常)更强大的方法之一......您可能不得不抓住机会手动编辑生成的文件(在将其与 dbml 完全分离之后) - 或者编写自己的 dbml解析器 frmo 从头开始(可能使用 xslt)。不容易。
动态数据中的解决方法是使用可以修饰的元数据类:
[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; }
}
}