将接口添加到DataContext类

Jas*_*son 1 c# linq-to-sql

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

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

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

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

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

public partial class Error : INotifyPropertyChanging, INotifyPropertyChanged, IMatchable
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 5

不要编辑设计器文件; 部分类的优点是你可以用just创建一个单独的文件

public partial class Error : IMatchable
{ }
Run Code Online (Sandbox Code Playgroud)

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

谨慎的小字是:如果你正在使用VS2008,你有MyClasses.dbml和MyClasses.designer.cs,也没有叫这个文件MyClasses.cs-存在VS2008,使这个讨厌(你必须不停地移动中的错误using命名空间内的指令,或代码生成器休息) - 虽然修复了VS2010.

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