【问题标题】:Bug in Entity Framework 4.3 code first - index already existsEntity Framework 4.3 代码中的错误 - 索引已存在
【发布时间】: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


【解决方案1】:

这是 EF 4.3 中的一个错误。它将在 EF5 RTM 中修复。有关包括解决方法在内的更多信息,请参阅此问题:Unhandled Exception after Upgrading to Entity Framework 4.3.1

【讨论】:

    猜你喜欢
    • 2012-03-18
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多