Как мне остановить Entity Framework от генерации ОБА ObjectContext и dbContext

ФонVisual Studio 2012НОВЫЙ файл Model.EDMX, созданный в VS2012Скопировал часть EDMX xml из ранее созданного EDMX в новыйПроблема / Вопрос

Сейчас. EDMX (преобразование TT, пользовательский инструмент, что угодно и т. Д.) Генерирует ОБА классы DbContext (в файлах Model.tt/Model.Context.tt)а также Классы ObjectContext (через файл Model.designer.cs). Смотрите изображение ниже:

Все прекрасно работает и работает с DbContext (но, очевидно, только если я удаляю файл Designer.cs непосредственно перед сборкой), но Designer.cs - и его код на основе ObjectContext - продолжает появляться снова. Как мне остановить это поведение ?!

 Pawel25 окт. 2012 г., 23:41
Вы пытались щелкнуть по поверхности дизайнера и изменить стратегию генерации кода на None?
 Jay Stevens26 окт. 2012 г., 03:31
Но я хочу сгенерировать код ... Код DbContext через файлы Model.tt и Model.Context.tt; Я просто нене хочу, чтобы старый объект ObjectContext из Model.Desiger.cs

Ответы на вопрос(4)

Решение Вопроса

Не могу понять, как остановить файл Designer.cs от генерации ObjectContext, но я выяснил, как сделать так, чтобы он нене имеет значения. Просто установите Build Action на "Никто" вместо "Компиляция».

В обычных проектах EF Code First стратегия генерации кода - это "Никто" и ObjectContext не генерируется.

В вашем случае оказывается, что для вашей стратегии генерации кода установлено значение "По умолчанию".

Чтобы прекратить генерацию ObjectContext вxxxx.Designer.csперейдите к файлу edmx и измените стратегию генерации кода с "По умолчанию" к "Никто".

Если вы проверяетеxxxx.Designer.cs

// Default code generation is disabled for model 'C:\Users\xyxy\xyxyxy.Web\Models\xyxy.edmx'. 
// To enable default code generation, change the value of the 'Code Generation Strategy' designer
// property to an alternate value. This property is available in the Properties Window when the model is
// open in the designer.

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

Таким образом, превратив стратегию генерации кода вNone в.edmx Вы делаете.designer.cs файл пуст от любого полезного контента.

Затем откройте файл проекта, найдите узлы, представляющие.edmxпо умолчанию он содержится вEntityDeploy то есть значение Build Action, и удалите егоGenerator подключ.

EntityModelCodeGenerator значение вCustom Tool поле.edmx свойства файла. Просто удалите это значение.

Я думаю, что это так, потому что я заметил, что в проекте, который я начал как проект EF6, нет никакой ценности, и он не имеет.designer.cs файл, но в двух, которые я обновил с EF4, они оба имеют значение и файл конструктора.

(Это соответствует тег в базовом.csproj файл.)

Ваш ответ на вопрос