如果能夠以某種方式說出生成的實體類中的某些屬性應該(例如)通過(比如說)驗證屬性(以及Linq To SQL列屬性)進行修飾,那將非常方便。可能修改Linq To SQL生成的C#?
它是一個T4模板嗎?或者還有其他方法來剝皮貓嗎?
如果能夠以某種方式說出生成的實體類中的某些屬性應該(例如)通過(比如說)驗證屬性(以及Linq To SQL列屬性)進行修飾,那將非常方便。可能修改Linq To SQL生成的C#?
它是一個T4模板嗎?或者還有其他方法來剝皮貓嗎?
不,SqlMetal工具是處理C#生成的工具,它自身定義瞭如何生成C#(或VB)。
我不熟悉你想要的模板樣式,但是你可以試着放棄生成的類(如果它們不是那麼大的變化),因爲它們只是部分類。
否則,你需要寫/查找SqlMetal的自定義實現
不幸的是,部分類不能屬性成員從局部類的另一部分增加 - 也就是說,如果SqlMetal定義屬性Foo
,你無法在.cs
的一半中爲Foo
添加屬性。
這取消了其中一種(通常)定製此類文件的更強大的方法......您可能必須抓住機會並手動編輯生成的文件(將其完全從dbml中分離後) - 或者編寫你自己的dbml解析器frmo scratch(mayhbe using 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; }
}
}