找不到EF6 PrimitivePropertyConfiguration

时间:2015-10-22 21:51:14

标签: entity-framework-6

我收到的错误是我在EF6(5或4)中从未见过的。

  

找不到方法:   ' System.Data.Entity.ModelConfiguration.Configuration.PrimitivePropertyConfiguration   System.Data.Entity.ModelConfiguration.Configuration.PrimitivePropertyConfiguration.HasDatabaseGeneratedOption(System.Nullable`1)'

public class AuthorizeAttribMap : EntityTypeConfiguration<AuthorizeAttrib>
{
    public AuthorizeAttribMap()
    {
        // TAttrib //
        this.HasKey(x => x.Id);

        // Properties
        this.Property(t => t.Id)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
        this.Property(t => t.ControllerName)
            .IsRequired()
            .HasMaxLength(100);
        this.Property(t => t.ActionName)
            .HasMaxLength(100);

        // Table & Column Mappings
        this.ToTable("AuthorizeAttrib");
        this.Property(t => t.Id).HasColumnName("Id");
        this.Property(t => t.ControllerName).HasColumnName("ControllerName");
        this.Property(t => t.ActionName).HasColumnName("ActionName");
    }
}

我错过了什么?

2 个答案:

答案 0 :(得分:3)

发现了“问题”,或者至少是修复 - 而且我讨厌它!

解决方案包含22个项目并且还在增长。我们还没有DI用于在整个堆栈中分离关注点。 EF引用已经爬上堆栈,为我们提供了16个引用EF的项目。我们使用TFS 2013进行源代码管理。

经过多次检查和获取后,其中一个项目似乎已经选择了旧的EF参考。 (真的吗?怎么样?)通过使用Nuget解决方案,我删除了所有EF包(Nuget使用相同版本报告了所有项目)。关闭VS,重新打开,将EF Nuget添加回所有项目,修复项目破坏的引用(使其在其他项目中丢失)。重新编译,跑了。这一切现在都有效。

我们之前使用NewtonSoft.JSON看到了同样的类型错误。

TFS正在通过Nuget参考的明显转换让我疯狂。

修复:全部删除,添加所有EF Nuget引用。

答案 1 :(得分:0)

只需仔细检查您的代码......

你在同一财产上宣布两次。身份和无。

你试过只保留一个吗?我已经检查了其他实现,看起来是正确的方法,但从我的理解,这些选项是相互排斥的。