2

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

它是某个地方的 T4 模板吗?或者还有其他方法可以给猫剥皮吗?

4

4 回答 4

1

Damien Guard 编写了可自定义的 T4 模板。看:

http://damieng.com/blog/2008/09/14/linq-to-sql-template-for-visual-studio-2008

...和:

http://visualstudiomagazine.com/listings/list.aspx?id=560

于 2008-12-03T11:48:04.180 回答
0

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

我不熟悉您想要的模板样式,但您可以尝试扩展生成的类(如果它们没有那么大的变化),因为它们只是部分类。

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

于 2008-11-26T00:57:33.947 回答
0

不幸的是,对于部分类,您不能将属性添加到部分类的另一部分的成员中 - 即,如果 SqlMetal 定义了 property Foo,则不能Foo在您自己的一半中添加属性.cs

这消除了自定义此类文件的(通常)更强大的方法之一......您可能不得不抓住机会手动编辑生成的文件(在将其与 dbml 完全分离之后) - 或者编写自己的 dbml解析器 frmo 从头开始​​(可能使用 xslt)。不容易。

于 2008-11-26T04:52:28.263 回答
0

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

[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/

于 2008-12-15T12:43:21.410 回答