2012-03-15 4 views
1

Мне интересно, есть ли способ отладить генерацию базы данных приложения ASP.NET MVC 3. Я столкнулся с некоторой проблемой: база данных не создана, и у меня нет сообщения об ошибке.Debug EF Code Первое поколение баз данных

ОБНОВЛЕНО

Вот моя строка соединения:

<connectionStrings> 
    <add name="SmartRent.Models.AdContext" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

Вот мой Global.asax.cs

protected void Application_Start() 
{ 
    System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseAlways<SmartRent.Models.AdContext>()); 
    AreaRegistration.RegisterAllAreas(); 

    RegisterGlobalFilters(GlobalFilters.Filters); 
    RegisterRoutes(RouteTable.Routes); 
} 

Вот мой EF DataContext:

namespace SmartRent.Models 
{ 
    public class AdContext : DbContext 
    { 
     public DbSet<Ad> Ads { get; set; } 

     public DbSet<CraneLocation> CraneLocations { get; set; } 
    } 
} 
+0

Какие исключения? У меня была случайная проблема с миграцией с неожиданной ошибкой. Он решает, ссылаясь на флаг -StartUpProjectName во время миграции –

+0

. Исключением не является. Веб-приложение просто запускается, но база данных не создается. – AngeloBad

+0

Чтобы создать его, вы должны запустить команду «Обновить базу данных» в консоли диспетчера пакетов. У него нет подключений к компиляции –

ответ

1
  1. Запуск моего завершенного soln моего урока http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/getting-started-with-mvc3-part1-cs
  2. Мой код работает, поэтому измените код/​​код, пока он не сломается/не работает.

Лучший способ решить эту проблему - использовать профилировщик SQL. Попробуйте сначала воспроизвести код.

1

С одной только код первой точки зрения ...
это может помочь вам Entity Framework 4.3 doesn't create database
и вы должны работать с PM консоли, нет никакого другого пути, чтобы обойти проблемы (и , что это лучший способ на самом деле " debug ', что происходит).
Каждый шаг в консоли PM должен привести к успеху - и никаких исключений также не читать комментарии, поскольку они часто говорят вам, что может быть неправильным.
Вы также можете запустить Update-Database -Script, чтобы получить представление о том, что создается (до его создания).
И SQLExpress по умолчанию (я думаю), поэтому вы можете удалить строку подключения, чтобы проверить что-либо без указания соединения.
Короче говоря, некоторая согласованность вокруг этого и игра/понимание консоли PM помогла мне получить контроль над вещами, также может помочь вам.
Также вручную удаляются предыдущие созданные Db-файлы (с помощью Code First, если у вас их вообще есть), удаление миграции, если они существуют, перекомпиляция и повторное выполнение, поэтому обычные методы отладки :).

Смежные вопросы