将接口添加到DataContext类

时间:2011-02-14 06:43:30

标签: c# linq-to-sql

我正在使用Linq-To-SQL,我想为每个实体附加一个接口。

我可以编辑designer.cs文件并完成此操作。

但是,当我通过UI对dbml进行更改时,它会重写整个designer.cs并且我将丢失更改。

我只是要处理它,还是有办法解决它?

我在designer.cs文件中执行此操作(IMatchable是我的自定义界面):

public partial class Error : INotifyPropertyChanging, INotifyPropertyChanged, IMatchable
{
   ...
}

1 个答案:

答案 0 :(得分:5)

不要编辑设计器文件;部分课程的美妙之处在于您可以使用

创建单独的文件
public partial class Error : IMatchable
{ }

(假设我们使用隐式接口实现,因为它具有与所需接口匹配的属性)

但要小心谨慎:如果您使用的是VS2008并且有MyClasses.dbmlMyClasses.designer.cs,请调用此文件MyClasses.cs - 有一个VS2008中的错误使得这很麻烦(你必须继续在命名空间内移动using指令,或者代码生成器中断) - 虽然在VS2010中修复了。

此外,如果它是单个接口,模型中的每个类型实现,您可以通过在DBML中指定对象基类型来作弊。设计人员不会显示此选项,但如果您手动编辑DBML,则可以正常工作。