Отладка EF Code Первое создание базы данных - PullRequest
1 голос
/ 16 марта 2012

Мне интересно, есть ли какой-нибудь способ отладки создания базы данных приложения ASP.NET MVC 3. Я столкнулся с некоторой проблемой: база данных не создана, и у меня нет сообщения об ошибке.

ОБНОВЛЕНО

Вот моя строка подключения:

  <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; }
    }
}

Ответы [ 3 ]

1 голос
/ 22 марта 2012

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

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

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

0 голосов
/ 04 марта 2014

См .: Отладка Консоли диспетчера пакетов. Метод обновления базы данных - заполнение базы данных

Отрезано из ответа

if (System.Diagnostics.Debugger.IsAttached == false)
  System.Diagnostics.Debugger.Launch();
...