Ошибка кода, сгенерированная моделью данных сущности LINQ. Тип DBContexts.Category уже содержит определение для ID. - PullRequest
1 голос
/ 27 января 2010

В моей базе данных есть две таблицы - категория и отдел, которые содержат одинаковые столбцы - идентификатор, имя и код.

Я могу создать новую модель сущностей с помощью дизайнера Visual Studio 2008 и добавить Департамент, и он работает нормально - я могу запрашивать базу данных с помощью LINQ, все хорошо.

Когда я обновляю модель и добавляю таблицу категорий, сгенерированный код выдает следующие ошибки при попытке компиляции.

The type 'DBContexts.Category' already contains a definition for 'ID'
The type 'DBContexts.Category' already contains a definition for '_ID'

The type 'DBContexts.Category' already contains a definition for 'Name'
The type 'DBContexts.Category' already contains a definition for '_Name'

A partial method may not have multiple defining declarations

Я думаю, это как-то связано с тем, что Департамент и Категория имеют одинаковые имена столбцов - но это не похоже на проблему с столбцом Код.

Есть идеи, как я могу это исправить? Я не могу возиться с сгенерированным кодом, так как любые изменения будут удалены, если я обновлю модель.

Приветствия

1 Ответ

8 голосов
/ 27 января 2010

При обновлении файла .dbml файл .designer.cs также регенерируется, НО, если этот файл недоступен, создается новый файл и добавляется в проект. Поскольку классы в обоих файлах являются частичными, но имеют одинаковые свойства и поля при компиляции, вы получите эту ошибку.

Вы можете проверить, есть ли у вас только один созданный дизайнером файл для вашего контекста. Вы можете сделать это, щелкнув правой кнопкой мыши на имени вашего класса и выбрав «Перейти к определению» - он покажет все файлы, содержащие определение вашего класса.

...