Entity Model: Как переместить сгенерированные классы Entity Model в отдельную сборку - PullRequest
0 голосов
/ 15 июля 2011

Я сгенерировал модель сущности из моей базы данных, которая создала классы сущностей.

1) Есть ли способ создать отдельный файл для каждого класса? 2) Можем ли мы переместить эти классы в другую сборку? Например, как я могу переместить эти классы в другой проект в моем решении?

Я хочу отделить модель сущности от классов и использовать классы в уровне представления.

Ответы [ 2 ]

1 голос
/ 15 июля 2011
  1. Нет (в генераторе .edmx по умолчанию), поскольку пользовательский инструмент VS имеет тип IVsSingleFileGenerator и может создавать только один файл.
  2. Да, но вам потребуется настроить объектгенерация кодаЧитайте здесь .Существует ссылка , показывающая, как разделить модель и сгенерированные классы между проектами.

@ Крис, частичные классы нельзя разделить по сборкам.Здесь много вопросов / ответов об этом.

1 голос
/ 15 июля 2011

Конечно, вы можете создать edmx в отдельном проекте, но я не думаю, что вы можете разделить классы больше, чем на сгенерированные файлы по умолчанию.Обратите внимание, что вы не должны пытаться редактировать сгенерированные классы, так как они будут перезаписаны при обновлении, и вы также можете легко разбить материал.

Однако вы можете создать public partial class с тем же пространством имен и объявлением классакак каждый из объектов Entity, чтобы позволить вам расширять классы и добавлять функции инициализации / проверки и т. д., позволяя помещать каждую сущность в свой собственный файл классов для расширения.

Обновлено:

Всесвязанные частичные классы должны находиться в той же сборке и должны использовать то же пространство имен и объявление класса, что и исходная сущность partial class в <EntityModel>.Designer.cs.Ниже приведен пример кода.

namespace YourEntityNamespace
{
    public partial class YourEntity : EntityObject
    {
        // Add methods and properties to extend the entity class
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...