Entity Framework не создает классы для таблиц или процедур
Я использую Entity Framework для создания классов и функций в C#, которые мне нужны для взаимодействия с SQL server.
для справки, вот одна из моих таблиц:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Area](
[ID] [bigint] identity (1, 1) primary key,
[Name] [nvarchar](100) NOT NULL
)
GO
после запуска мастера модели данных сущности (с помощью "EF Designer from database") мой проект имеет файл edmx и несколько новых .cs-файлы, но похоже, что он не генерирует все, что ему нужно.
в моем классе DatabaseEntities, например, у меня есть got:
public virtual DbSet<Area> Areas { get; set; }
однако нет определения для типа "область" (наряду с тремя другими отсутствующими типами). Мне также не хватает функций для хранимых процедур.
Я попытался удалить новые файлы и повторно запустить мастер модели, но я получаю тот же результат.
кто - нибудь еще столкнулся с этим?
заметками на полях истории болезни:
Я заметил во время последних нескольких попыток, что я также получаю ошибку при запуске мастера: "Пакет Entity Framework не установлен в project". Тем не менее, он все еще генерирует edmx и модель.контекст, когда я нажимаю мимо него.
у меня была такая же проблема с версиями Entity Framework 6.0.0 и 6.1.2.
переустановка фреймворка не повлияла на проблему(ы).
обновление:
удаление nuget и переустановка последней версии позволили мне установить EntityFramework через nuget без ошибок. Однако теперь ADO.NET в диалоге Добавить новый элемент отсутствует модель данных.
3 ответов
в том, что я сделал, было несколько шагов, и я должен отдать должное людям, которые прокомментировали ниже Вопрос.
1) я удалил менеджер пакетов nuget и переустановил последнюю версию (по-видимому, моя не была свежей). Это позволило мне установить EntityFramework через nugget без ошибок или сообщений отката.
2) я не уверен, помогло ли это или нет, но я также переустановил Entity Framework Tools для Visual Studio через веб-сайт Microsoft. Я все еще не уверен, если это надо обоим.
3) ADO.NET в диалоге Добавить новый элемент отсутствовал шаблон модели данных сущности. После выбора " добавить - > компонент "вместо" Добавить -> новый элемент", он затем мистически появился в обоих списках.
Как только это было сделано, я смог запустить EF Designer и все сгенерированное без проблем.
убедитесь, что ваши имена столбцов не являются зарезервированными словами, такими как типы данных или ключевые слова; у меня была проблема сегодня, пытаясь импортировать таблицу со столбцом, который кто-то просто назвал "датой", что, очевидно, является типом данных, и что goofed up EF. Когда я создал представление в SQL и сгладил столбец с неограниченным именем, таблица импортировала просто отлично и сгенерировала все необходимые классы.
лично я бы настоятельно рекомендовал использовать подход, основанный на коде, а не на дизайнере. Как дизайнер неприятности!!!