Не удается заставить CodeFirst работать (EF 4.3) (использовалось первое прохождение кода EF 4.2): InvalidOperationException: объект не отображается

Я экспериментирую с EntityFramework 4.3, используя CodeFirst. Я работаю с EF 4.0 ModelFirst и DatabaseFirst около двух лет и хочу интегрировать CodeFirst в существующий проект базы данных CRM. (... но попробовал без существующей базы данных!)

Я использую VS 2010, VB.Net и SQLEXPRESS Server 2008 для разработки.

Поэтому я начал с НОВОГО проекта, используя msdn-examples: "EF 4.2 Code First Walkthrough" ( http://blogs.msdn.com/b/adonet/archive/2011/09/28/ef-4-2-code-first-walkthrough.aspx)

и адаптация VB.NET из "Улучшения производительности для Entity Framework" ( http://blogs.msdn.com/b/vbteam/archive/2010/06/21/productivity-improvements-for-the-entity-framework.aspx)

Я цитирую: "Это 100% кода, который вы написали бы, чтобы запустить эту программу. Никакого отдельного определения модели, метаданных XML, файла конфигурации или чего-либо еще не требуется".

Ну, похоже, это не так для моей системы. Я установил EntityFramework 4.3 с NuGet Packet Manager, и ссылка там есть.

Я сначала попробовал это без App.Config - адаптация. Я получил InvalidOperationException... не отображается:

"Тип 'CodeFirstSample.MyDataAccessDemo.Program + Product' не отображен. "

Я добавил базу данных connectionString в app.config для своего соединения с SQL Server, создал базу данных "Продукты" и повторил попытку. Та же ошибка...

Что я сделал не так?

Я много гуглил, но не мог найти никаких подсказок.

2 ответа

Вы должны вывести классы Blog и Post из основного класса.

Пожалуйста, посмотрите на этот пост: http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/84dd6851-9ee5-48a2-950b-de90cdb30cb0/

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

Необходимо определить стратегию инициализации базы данных в начальной точке вашего проекта. Одним из примеров может быть:

  Database.SetInitializer(
    new DropCreateDatabaseIfModelChanges<YourContext>());

Я рекомендую попробовать пример исходного кода Джули Лерман, уверяю вас, что он на 100% работает с SQL Server 2008 Express и Visual Studio 2008, не затрагивая ни строчки кода, просто нажмите F5 .

Другие вопросы по тегам