Проблема внешнего ключа EF6

entity-framework entity-framework-6

Вопрос

Вот мои модели

public class Driver
{
    public int Id { get; set; }
    public String Name { get; set; }
    public int VehicleId { get; set; }
    public virtual Vehicle Vehicle  { get; set; }
}

public class Vehicle
{  
    public int Id { get; set; }
    public String Name { get; set; }

    public virtual Driver Driver { get; set; }

    public int VehicleGroupId { get; set; }
    public virtual VehicleGroup Vehicles { get; set; }
}

Я получаю следующую ошибку при обновлении базы данных:

Невозможно определить главный конец ассоциации между типами «AppName.Models.Vehicle» и «AppName.Models.Driver». Основной конец этой ассоциации должен быть явно сконфигурирован с использованием либо свободного API API, либо аннотаций данных.

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

Принятый ответ

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

public class Vehicle
{  
    [Key, ForeignKey("Driver")]
    public int Id { get; set; }
    public String Name { get; set; }

    public virtual Driver Driver { get; set; }

    public int VehicleGroupId { get; set; }
    public virtual VehicleGroup Vehicles { get; set; }
}

Я думаю, что ваша модель inccorect, потому что водитель может использовать много автомобилей в реальной жизни;)




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему