我从实体框架收到这个奇怪的错误,我无法弄清楚我在做什么错..
我的数据库上下文代码。
public DbSet<Interaction> Interactions { get; set; }
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
InteractionsDBContextConfig(modelBuilder);
base.OnModelCreating(modelBuilder);
}
public static void InteractionsDBContextConfig(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
// Interaction entity configuration.
modelBuilder.Entity<Interaction>()
.HasKey<int>(key => key.InteractionId);
modelBuilder.Entity<Interaction>()
.HasRequired<Form>(x => x.Form)
.WithMany()
.HasForeignKey(y => y.FormId);
modelBuilder.Entity<Interaction>()
.HasRequired<User>(x => x.User)
.WithMany()
.HasForeignKey(y => y.InteractionUserId);
// User entity configuration.
modelBuilder.Entity<User>()
.HasKey<int>(x => x.UserId);
modelBuilder.Entity<User>()
.Property(x => x.UserName)
.IsRequired()
.HasColumnAnnotation(
IndexAnnotation.AnnotationName,
new IndexAnnotation(
new System.ComponentModel.DataAnnotations.Schema.IndexAttribute() { IsUnique = true }
)
);
}
我的实体
public class Interaction
{
public int InteractionId { get; set; }
public int FormId { get; set; }
public string InteractionName { get; set; }
public virtual Form Form { get; set; }
public int InteractionUserId { get; set; }
public virtual User User { get; set; }
public DateTime Deadline { get; set; }
public int InteractionType { get; set; }
}
当我执行以下操作时
var db = dbcontext.Interactions.ToList();
我收到以下错误
{“无效的列名'InteractionType'。”}
我无法弄清楚为什么会出现错误,为什么实体框架看不到我的专栏?更改列的名称似乎没有帮助。
最佳答案
可能您更改了Interactions类,添加了“ InteractionType”属性,该属性未反映在数据库上,因此您需要使用Migrations。
在Visual Studio视图>其他Windows>程序包管理器控制台上打开菜单,然后在程序包管理器控制台上编写“启用迁移”,然后按Enter。
然后将在您的项目中生成一个名为“ Migrations”的文件夹,该文件夹中包含Configuration类,在那里您需要将AutomaticMigrationsEnabled属性设置为“ true”,如下所示。
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
您回到Package Manager控制台并输入命令“ Update-Database”,您的项目将再次运行。
关于c# - Entity Framework :无效的列名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32230254/