Существует обходной путь для этой проблемы, который зависит от некоторой логики в шаблонах T4, которые генерируют классы сущностей.
If(Not String.IsNullOrEmpty(namespaceName)) Then
#>
Namespace <#=namespaceName#>
<#
Сущности создаются в пространстве корневых имен, определенном на уровне проекта, если онодоступный, и в пределах пространства имен, ускоренного в файле EDMX, в противном случае (кажется, что метод CodeGenerationTools.VsNamespaceSuggestion справляется с этим).
Если доступно корневое пространство имен, то в этом пространстве имен должны находиться закодированные частичные классы, чтобысопоставьте сгенерированные - у них нет декларации пространства имен на уровне файлов.Когда эти файлы являются «общими» для клиента (через расширение shared.vb), они попадают в корневое пространство имен клиента, тогда как сгенерированные сущности попадают в пространство имен, которое состоит из корневого пространства имен клиента и корневого пространства имен сервера.
Удаление корневого пространства имен из проекта сервера и последующее явное объявление пространства имен EDMX в кодированных частичных классах приводит к тому, что и эти общие файлы, и сгенерированные права попадают в одно и то же пространство имен на клиенте (корень клиентаПространство имен плюс пространство имен EDMX).
Примечание: Шаблон «ADO.Net EntityObject Generator» (добавлен с помощью элемента контекстного меню «Добавить сгенерированный код ...» в конструкторе EDMX).Кажется, ведет себя не так, как у дизайнера.Он не генерировал объявление пространства имен в моих тестах, даже если я очистил корневое пространство имен на уровне проекта.Я не уверен в причине этого.