我正在使用EF5开发Web应用程序。我想在管理页面上显示数据库版本(即迁移的名称)...这样,如果将站点部署到我没有数据库管理员权限的环境中,我仍然可以登录如果需要生成升级脚本,请在后端查找版本。是否有属性(property),例如我可以用来获取此信息的DBContext吗?
最佳答案
Entity Framework 将创建迁移历史记录表以管理数据库版本。
您可以使用MigrationId
列作为数据库版本。该列的值看起来像201408011306353_InitialCreate
。只需获得前15个字符降序的最后一行顺序即可。
using (var context = new AppContext())
{
var query = "select top 1 MigrationId from __MigrationHistory order by LEFT(MigrationId, 15) desc";
var migrationId = context.Database.SqlQuery<string>(query).FirstOrDefault();
}