首页 > 解决方案 > Entity Framework Core 无法翻译新列

问题描述

我有一个 DbContext 类:

 internal class ServicesContext: DbContext
 {
 internal DbSet<CurrentRunningServiceDbModel> CurrentRunningServices { get; set; }
  ...
 }

其中CurrentRunningServiceDbModel代表 CurrentRunningServices 表:

class CurrentRunningServiceDbModel
{ 
        public string DataCenter { get; set; }
        public string Service { get; set; }
        public string Name { get; set; }
}

然后我可以毫无问题地使用上下文。现在我需要在 db 表中添加一些新列,所以我这样做并添加了另外 2 个列。然后我简单地添加了另外 2 个成员来CurrentRunningServiceDbModel包括public bool IsActive{ get; set; }. 但是,现在我尝试运行一个简单的 linq 查询,但出现异常:

var isRunning = dbContext.CurrentRunningServices.Where(crs => crs.DataCenter == dataCenter && crs.Name == name && crs.IsActive).Count() > 0;

例外情况是该子句无法翻译。它只发生在我添加到 db 表的新列中,其余的仍然可以正常工作。

我是否需要做一些特别的事情,以便 EF 获取我的数据库中的更改?

标签: c#entity-framework-core

解决方案


1-您在 SQL Server 或您正在使用的其他数据库软件中有您的“CurrentRunningServiceDbModel”吗?

2-您是否使用迁移进行新更改?

如果您的数据库在 SQL 或其他软件上,则需要迁移以更新它们。否则,您需要先添加数据库。


推荐阅读