У меня мало сущностей [таблиц] с DbGeography
[география] и одной хранимой процедуры, которая использует ObjectParameter
и IObjectContextAdapter
.
Каждый раз, когда я обновляю модель EDMX из базы данных, мне нужно переписать:
//for each geography column
public System.Data.Spatial.DbGeography geoColum
//for class where stored procedure is generated
using System.Data.Objects;
using System.Data.Objects.DataClasses;
в
//for each geography column
public System.Data.Entity.Spatial.DbGeography geoColum
//for class where stored procedure is generated
using System.Data.Entity.Core.Objects;
using System.Data.Entity.Core.Objects.DataClasses;
в моем проекте, потому что он не компилируется с классами, сгенерированными EF.
Почему EF 6 все еще порождает это неправильно? Как заставить EF генерировать правильные пути?
Вы все еще используете генерацию кода из старой версии Entity Framework. Убедитесь, что вы правильно обновили проект до EF6.
Если у вас есть модели, созданные с помощью EF Designer, вам нужно будет обновить шаблоны генерации кода для генерации кода, совместимого с EF6.
Примечание. В настоящее время для Visual Studio 2012 и 2013 доступны только шаблоны EF 6.x DbContext Generator.
Удалите существующие шаблоны генерации кода. Обычно эти файлы называются
<edmx_file_name>.tt
и<edmx_file_name>.Context.tt
и вложены в ваш файл edmx в обозревателе решений. Вы можете выбрать шаблоны в обозревателе решений и нажать клавишу Del, чтобы удалить их.Примечание. В проектах веб-сайта шаблоны не будут вложены в ваш файл edmx, но перечислены вместе с ним в обозревателе решений.
Примечание. В проектах VB.NET вам нужно включить "Показать все файлы", чтобы иметь возможность видеть вложенные файлы шаблонов.
Добавьте соответствующий шаблон генерации кода EF 6.x. Откройте свою модель в EF Designer, щелкните правой кнопкой мыши по поверхности дизайна и выберите Добавить элемент генерации кода...
Если вы используете API DbContext (рекомендуется), то EF 6.x DbContext Generator будет доступен на вкладке " Данные ".
Примечание. Если вы используете Visual Studio 2012, вам нужно будет установить EF 6 Tools для создания этого шаблона. Подробнее см. В разделе "Получить структуру Entity Framework".
Если вы используете ObjectContext API, вам нужно будет выбрать вкладку " Онлайн " и выполнить поиск EF 6.x EntityObject Generator.
Если вы применили какие-либо настройки к шаблонам генерации кода, вам нужно будет повторно применить их к обновленным шаблонам.
Дополнительную информацию см. В разделе " Обновление до EF6".