350+ ошибок: тип «blah.blah.blah» уже содержит определение? - PullRequest
4 голосов
/ 15 сентября 2009

Что это значит. Это потому, что у меня есть два разных файла .DBML, которые содержат одну и ту же таблицу базы данных?

...
Error   343 The type 'mvc.Models.Bundle' already contains a definition for 'BundleIcon' C:\inetpub\wwwroot\Models\Assets1.designer.cs   3438    17  mvc
Error   344 The type 'mvc.Models.Bundle' already contains a definition for 'isScorm'    C:\inetpub\wwwroot\Models\Assets1.designer.cs   3459    15  mvc
Error   345 The type 'mvc.Models.Bundle' already contains a definition for 'scormPath'  C:\inetpub\wwwroot\Models\Assets1.designer.cs   3480    17  mvc
Error   346 The type 'mvc.Models.Bundle' already contains a definition for 'CompanyID'  C:\inetpub\wwwroot\Models\Assets1.designer.cs   3501    14  mvc
...

Ответы [ 2 ]

7 голосов
/ 15 сентября 2009

Да, если вы сохраните их в одном и том же пространстве имен, это произойдет.

2 голосов
/ 28 октября 2009

ОК, я столкнулся с той же ошибкой при добавлении еще одного Linq-to-SQL .dbml.

Более конкретная причина в том, что вы не можете иметь 2 отдельных .DBML в одном и том же пространстве имен, которые ссылаются на одну и ту же таблицу и столбец.

В отличие от наборов данных, в которых вы можете иметь 2 отдельных набора данных ( Dataset1.xsd и Dataset2.xsd ) с одинаковыми таблицами и те же столбцы, но не в Linq.

DataClass1.dbml с таблицей MyTable с столбцом myColumn и DataClass2.dbml с таблицей и именем MyTable со столбцом myColumn завершится ошибкой, поскольку myColumn определен в обоих файлах designer.cs в одном и том же пространстве имен.

Мой обходной путь: я «переименовал» DataClass2.dbml MyTable в MyTable_2 и myColumn в myColumn_2 .

Затем я проклял Microsoft, удалил DataClass2.dbml и интегрировал 3-ю нужную мне таблицу в DataClass1.dbml вместе с другими таблицами (чтобы избежать этой проблемы). DataClass1.dbml теперь содержит около 40 таблиц, что приводит к тому, что файл DataClass1.designer.cs содержит более 20 000 строк «автоматически сгенерированного» кода.

Прекрасно, ах.

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