在Buddy Class中添加LINQ自动生成值标记[Column(IsDbGenerated = true)]

时间:2010-06-09 21:07:14

标签: c# linq linq-to-sql data-annotations buddy-class

是否可以使用伙伴类(通过[Column(IsDbGenerated=true)]链接到LINQ类)使用[MetadataType(typeof(BuddyMetadata))]修饰LINQ生成的类的字段?

我的目标是能够清除并重新填充LINQ ORM设计器,而无需每次手动设置“自动生成值”属性,以重新确定某些列是自动生成的事实。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用partial class - 使用您自己的分部类并使用该属性进行装饰。代码生成将是安全的。

如果您需要修饰方法,您也可以使用partial methods

据我所知,如果没有代码生成器在重新生成时销毁它们,就不能以这种方式修饰字段。

答案 1 :(得分:0)

LINQ to SQL无法识别好友类。

您不能只将属性添加到partial中,因为该属性已在其他partial中定义(这是发明要解决的伙伴类)。

一种选择是将我的T4模板用于VS,复制LINQ to SQL的代码生成功能(我曾经在产品团队工作),你可以在那里放一些逻辑来检测你自动生成的列并且每次都发出正确的属性。

http://l2st4.codeplex.com