我正在使用Linq-To-SQL,我想为每个实体附加一个接口。
我可以编辑designer.cs文件并完成此操作。
但是,当我通过UI对dbml进行更改时,它会重写整个designer.cs并且我将丢失更改。
我只是要处理它,还是有办法解决它?
我在designer.cs文件中执行此操作(IMatchable是我的自定义界面):
public partial class Error : INotifyPropertyChanging, INotifyPropertyChanged, IMatchable
{
...
}
答案 0 :(得分:5)
不要编辑设计器文件;部分课程的美妙之处在于您可以使用
创建单独的文件public partial class Error : IMatchable
{ }
(假设我们使用隐式接口实现,因为它具有与所需接口匹配的属性)
但要小心谨慎:如果您使用的是VS2008并且有MyClasses.dbml
和MyClasses.designer.cs
,请不调用此文件MyClasses.cs
- 有一个VS2008中的错误使得这很麻烦(你必须继续在命名空间内移动using
指令,或者代码生成器中断) - 虽然在VS2010中修复了。
此外,如果它是单个接口,模型中的每个类型实现,您可以通过在DBML中指定对象基类型来作弊。设计人员不会显示此选项,但如果您手动编辑DBML,则可以正常工作。