Entity Framework Code First :Настройка связи One-To-One внешнего ключа с использованием аннотаций

У меня есть следующие два объекта, которые я пытаюсь связать (один к одному )с помощью ассоциаций внешнего ключа.

public class StandardRack {
    public int Id {get;set}
    public StandardRelay StandardRelay {get;set} 
}

public class StandardRelay {
    public int Id {get;set} 

    public int StandardRack_Id {get;set;}
    [Required][ForeignKey("StandardRack_Id")]
    public StandardRack StandardRack { get; set; }
}

Это вызывает исключение ModelValidationException. Любые идеи, почему такая, казалось бы, простая двунаправленная связь-к-одному не может быть настроена.

Изменить:

Вот исключение:

System.Data.Entity.ModelConfiguration.ModelValidationException было поймано Сообщение = Во время создания модели обнаружена одна или несколько ошибок проверки:

System.Data.Edm.EdmAssociationEnd::Множественность недействительна в роли «StandardRelay_StandardRack_Source» в отношении «StandardRelay_StandardRack». '. Поскольку свойства зависимой роли не являются ключевыми свойствами, верхняя граница кратности зависимой роли должна быть «*».

Источник=EntityFramework Трассировка стека:в System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions.ValidateAndSerializeCsdl(Модель EdmModel, средство записи XmlWriter)в System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions.ValidateCsdl(Модель EdmModel)в System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest,DbProviderInfo providerInfo)в System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)в System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)в System.Data.Entity.Internal.RetryLazy 2.GetValue(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() at System.Data.Entity.Internal.InternalContext.Initialize() at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) at System.Data.Entity.Internal.Linq.InternalSet1.Инициализировать()в System.Data.Entity.Internal.Linq.InternalSet 1.GetEnumerator() at System.Data.Entity.Infrastructure.DbQuery1.System.Collections.Generic.IEnumerable.GetEnumerator()в System.Collections.Generic.List 1..ctor(IEnumerable1 коллекция)в System.Linq.Enumerable.ToList[TSource](IEnumerable`1 источник)в TestApplication.MainWindow.Window_Loaded(Отправитель объекта, RoutedEventArgs e)в D:\RailwayProjects\RelayAnalysis\TestApplication\MainWindow.xaml.cs:строка 33 InnerException:

15
задан Masoud 12 June 2016 в 02:50
поделиться