现在,每当我从UserSettings.Instance.SetValue(SettingsKey.Username, "AwesomeUser");
String username = UserSettings.Instance.GetValue(SettingsKey.Username);
表中删除记录时,我都想删除相关的Factors1
记录。即级联删除。所以我使用流畅的API获得以下代码:
Factors
但是这会引发以下错误:
声明的导航属性Models.Factors.Details与指定导航的结果不兼容。
这是我的模特:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Factors>()
.HasOptional(r => r.Details).WithOptionalDependent()
.WillCascadeOnDelete(true);
}
我发布了我的模型,并且上述重复帖子中的答案也没有解决我的问题。
答案 0 :(得分:0)
您的映射定义了Factor
和Factors
之间的一对一关联,但实际上它是一对多的关联。我认为EF可以通过告诉你一对一关联的目标不能是一个集合来做得更好。无论如何,你应该把它改成
modelBuilder.Entity<Factors>()
.HasMany(r => r.Details).WithRequired(d => d.Factors)
.WillCascadeOnDelete(true);
顺便说一句,让自己(以及未来的读者)受宠,并修复这种高度欺骗性的命名。