Mam następujące dwa elementy, które próbuję powiązać (jeden do jednego) przy użyciu skojarzeń kluczy obcych.Kod struktury jednostki Najpierw: Konfigurowanie powiązania klucza obcego One-To-One za pomocą Adnotacji
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; }
}
To powoduje zgłoszenie wyjątku ModelValidationException. Wszelkie pomysły, dlaczego nie można skonfigurować tak pozornie prostej dwukierunkowej relacji jeden-do-jednego.
Edit:
Oto Wyjątek:
System.Data.Entity.ModelConfiguration.ModelValidationException został złapany Message = Jeden lub więcej błędów walidacji zostały wykryte podczas generacji modelu:
System.Data.Edm.EdmAssociationEnd:: Wielość nie jest poprawna w roli "StandardRelay_StandardRack_Source" w relacji "StandardRelay_StandardRack". Ponieważ właściwości Dependent Role nie są właściwościami kluczowymi, górna granica mnożności roli zależnej musi wynosić * .
Source = EntityFramework StackTrace: na System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions.ValidateAndSerializeCsdl (model EdmModel, XmlWriter pisarz) w System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions.ValidateCsdl (model EdmModel) w System.Data.Entity.DbModelBuilder.Build (DbProviderManifest providerManifest, DbProviderInfo providerInfo) w System.Data.Entity.DbModelBuilder.Build (DbConnection providerConnection) w System.Data.Entity.Internal.LazyInternalContext.CreateModel (LazyInternalContext internalContext) w 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.InternalSet
1.Initialize() w System.Data.Entity.Internal.Linq.InternalSet1.GetEnumerator() at System.Data.Entity.Infrastructure.DbQuery
1.System.Collections.Generic.IEnumerable.GetEnumerator() w System.Collections.Generic.List1..ctor(IEnumerable
1 kolekcji) w System.Linq.Enumerable.ToList [ TSource] (źródło IEnumerable`1) w TestApplication.MainWindow.Window_Loaded (nadawca Object RoutedEventArgs e) D: \ RailwayProjects \ RelayAnalysis \ TestApplication \ MainWindow.xaml.cs: linia 33 InnerException:
Czy możesz wysłać szczegółową wiadomość o 'ModelValidationException', w tym o możliwych wewnętrznych wyjątkach? – Slauma
Zobacz moją EDYTĘ dla wyjątku – Jatin