Добавление интерфейсов в классы DataContext - PullRequest
1 голос
/ 14 февраля 2011

Я использую Linq-To-SQL, и я хотел бы присоединить интерфейс к каждой из моих сущностей.

Я могу отредактировать файл designer.cs и выполнить это.Когда я делаю изменения в dbml через пользовательский интерфейс, он переписывает весь файл designer.cs, и я теряю свои изменения.

Должен ли я с этим справиться, или есть способ обойтиэто?

Я делаю это в файле designer.cs (IMatchable - мой пользовательский интерфейс):

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

1 Ответ

5 голосов
/ 14 февраля 2011

Не редактируйте файл конструктора; прелесть частичных классов в том, что вы можете создать отдельный файл с просто

public partial class Error : IMatchable
{ }

(при условии, что мы используем неявную реализацию интерфейса благодаря наличию свойств, соответствующих требуемому интерфейсу)

Небольшое предостережение: если вы используете VS2008 и у вас есть MyClasses.dbml и MyClasses.designer.cs, не вызывайте этот файл MyClasses.cs - в VS2008 есть ошибка, которая делает это неприятность (вы должны продолжать перемещать директивы using внутри пространства имен или разрывы генератора кода) - хотя исправлено в VS2010.

Кроме того, если это был одиночный интерфейс, который каждый тип реализован в вашей модели, вы можете обмануть, указав его в базовом типе объекта в DBML. Дизайнер не показывает эту опцию, но если вы редактируете DBML вручную, он работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...