我有以下两个我试图使用外键关联关联(一对一)的实体。
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”中的角色“StandardRelay_StandardRack_Source”中无效。因为从属角色属性不是关键属性,所以从属角色的多重性的上限必须是“*”。
Source=EntityFramework StackTrace:在 System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions.ValidateCsdl(EdmModel model, XmlWriter writer) 在 System.Data.Entity.Edm.EdmModelExtensions.ValidateAndSerializeCsdl(EdmModel model) .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.InternalSet
1.Initialize() 在 System.Data.Entity.Internal.Linq.InternalSet1.GetEnumerator() at System.Data.Entity.Infrastructure.DbQuery
1.System.Collections.Generic.IEnumerable.GetEnumerator() 在 System.Collections.Generic.List1..ctor(IEnumerable
1 集合) 在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 源) 在 TestApplication.MainWindow.Window_Loaded(Object sender , RoutedEventArgs e) 在 D:\RailwayProjects\RelayAnalysis\TestApplication\MainWindow.xaml.cs:line 33 InnerException: