我收到的错误是我在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");
}
}
我错过了什么?
答案 0 :(得分:3)
发现了“问题”,或者至少是修复 - 而且我讨厌它!
解决方案包含22个项目并且还在增长。我们还没有DI用于在整个堆栈中分离关注点。 EF引用已经爬上堆栈,为我们提供了16个引用EF的项目。我们使用TFS 2013进行源代码管理。
经过多次检查和获取后,其中一个项目似乎已经选择了旧的EF参考。 (真的吗?怎么样?)通过使用Nuget解决方案,我删除了所有EF包(Nuget使用相同版本报告了所有项目)。关闭VS,重新打开,将EF Nuget添加回所有项目,修复项目破坏的引用(使其在其他项目中丢失)。重新编译,跑了。这一切现在都有效。
我们之前使用NewtonSoft.JSON看到了同样的类型错误。
TFS正在通过Nuget参考的明显转换让我疯狂。
修复:全部删除,添加所有EF Nuget引用。
答案 1 :(得分:0)
只需仔细检查您的代码......
你在同一财产上宣布两次。身份和无。
你试过只保留一个吗?我已经检查了其他实现,看起来是正确的方法,但从我的理解,这些选项是相互排斥的。