【发布时间】:2012-02-23 00:18:24
【问题描述】:
在以前的版本中一切正常,但现在在 4.3 中出现此错误:
“System.Data.SqlClient.SqlException”类型的异常发生在 EntityFramework.DLL 但未在用户代码中处理
附加信息:操作失败,因为索引或 名为“IX_Id”的统计信息已存在于表“用户”中。
User 表有一个 Id 属性并且是主键,但我没有在其他任何地方使用代码或属性来创建附加索引??
用户模型:
public class User
{
public int Id { get; set; }
public virtual Settings Settings { get; set; } /* 1-1 */
public virtual Profile Profile { get; set; } /* 1-1 */
public virtual Account Account { get; set; } /* 1-1 */
}
在我的 OnModelCreating(DbModelBuilder modelBuilder) 中失败了
modelBuilder.Entity<User>().HasRequired(u => u.Settings).WithRequiredDependent();
modelBuilder.Entity<User>().HasRequired(u => u.Profile).WithRequiredDependent();
modelBuilder.Entity<User>().HasRequired(u => u.Account).WithRequiredDependent();
更新:刚刚通过使用 WithRequiredPrincipal 而不是 WithRequiredDependent 来修复它。不知道为什么这在 4.3 中有所不同
【问题讨论】:
-
你能告诉我们你的用户模型代码吗?
-
我遇到了类似的问题。但是 .WithRequired()、.WithRequiredPrincipal() 和 .WithRequiredDependent() 都失败了。
-
这可能与此问题/答案重复:stackoverflow.com/questions/10438219/…
-
这可能是重复的,但是当您在 2 月份发布这些问题时,很难预测 5 月份可能会提出什么问题。
-
仍然是 EF 5.0 RTM 中的一个错误。
标签: entity-framework entity-framework-4 entity-framework-4.3