Не удается заставить 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 .