2014-01-18 1 views
1

Вот мои моделиEF6 внешнего ключ Выпуск

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 в модели автомобиля. Но успеха нет. Буду признателен за любую оказанную помощь.

ответ

0

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

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, потому что водитель может использовать много автомобилей в реальной жизни;)

+0

Может i поместить [ForeignKey («Автомобиль»)] по атрибуту VehicleId в Модель драйвера? –

+0

Какова связь между водителем и Vehcile: - Один водитель может управлять несколькими транспортными средствами - Один водитель может управлять только одним транспортным средством – CodeNotFound

+0

Один к одному. Существуют ли какие-либо изменения между EF5 и EF6 при настройке атрибутов внешнего ключа? –