Поскольку в заголовке у вас есть "poco", я думаю, вы используете шаблон EF4 POCO Generator T4.
Тогда да, вы можете разделить классы POCO и ObjectContext на две разные библиотеки классов. Шаблон T4 подготовлен для этого сценария, поскольку он состоит из двух разных файлов:
- POCOGenerator.Context.tt -> ответственный за создание вашего производного ObjectContext
- POCOGenerator.tt -> ответственный за создание ваших объектов POCO
Если вы добавите генератор POCO в библиотеку классов, в которой находится ваш файл EDMX, по умолчанию оба tt-файла будут добавлены туда.
Но затем вы можете переместить второй файл ( POCOGenerator.tt ) в другую библиотеку классов. (Проект EDMX, в котором находится контекст, должен ссылаться на эту библиотеку для распознавания классов POCO.) После этого откройте этот файл в текстовом редакторе. Некоторые из первых строк в этом файле будут выглядеть так:
...
string inputFile = @"MyModel.edmx";
EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
...
Теперь вам нужно изменить путь к файлу edmx (только в POCOGenerator.tt, оставьте POCOGenerator.Context.tt без изменений). Предполагая, что у вас есть проект edmx и проект POCO в одном решении Visual Studio, новый путь может быть следующим:
...
string inputFile = @"..\..\MyEDMXProject\MyModel.edmx";
EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
...
Теперь вы можете выполнять оба файла отдельно от двух разных проектов. Один создаст файл контекста, а другой создаст ваши POCO-файлы.