2016-10-04 3 views
1

Как отладить ошибку с помощью моего кода Entity Framework Сначала развертывание базы данных?Как отладить код платформы Entity Первая ошибка развертывания базы данных?

Я использую EF 6.1.3. Я пытаюсь развернуть базу данных для Azure, которая включает в себя следующие модели:

public class DriverLog 
{ 
    public int ID { get; set; } 

    [Required] 
    public DateTime LogDate { get; set; } 

    public int RouteID { get; set; } 
    public virtual Route Route { get; set; } 

    public int DriverID { get; set; } 
    [ForeignKey("DriverID")] 
    public virtual Employee Driver { get; set; } 

    public int DispatcherID { get; set; } 
    [ForeignKey("DispatcherID")] 
    public virtual Employee Dispatcher { get; set; } 
} 

Развертывание преуспевает, но когда я пытаюсь получить доступ к базе данных, я получаю следующее сообщение об ошибке:

{"Message":"An error has occurred."} 

Если Я удаляю последние два поля - DispatcherID и Dispatcher - я не получаю эту ошибку.

По какой-то причине EF мне не нравится, включая эти два поля, но я не знаю, почему, и я не знаю, как это сделать, отлаживая это.

+0

Как вы размещаете приложение, так что вы получите эту ошибку? –

ответ

-1

Проверьте ограничение первичного ключа для «DispatcherID», в основном упорядочив его создание таблицы, поскольку вы используете «DropCreateDatabaseIfModelChanges».

Также добавьте некоторый пользовательский захват ошибки, чтобы получить подробную информацию об ошибке.

1

Я был в состоянии решить эту проблему так:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<DriverLog>() 
      .HasRequired(o => o.Dispatcher) 
      .WithMany() 
      .WillCascadeOnDelete(false); 
    } 

Кредит для этого решения идет на: Introducing FOREIGN KEY constraint may cause cycles or multiple cascade paths - why?

+0

Отлично! меня было рядом .. счастливое кодирование –

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