1

我们首先将实体框架代码用于 DB 表。现在数据库已移至另一台开发服务器,并且 DBA 已创建可更新的视图来使用而不是表。我更改了连接字符串,它开始给出错误“数据库中的创建表权限被拒绝............”看起来因为表不存在数据库,EF 正在尝试创建一个。我按照以下步骤操作

实体框架代码优先和预生成视图

如何使用可更新视图

基本上创建了 edmx 文件并手动删除 DefiningQuery 标记并将 store:views 更改为表并生成视图并添加到项目中。但我仍然遇到同样的错误。

我是 EF 的新手,不清楚我在这里做什么。基本上我需要从这里告诉 EF 病房使用这个数据库,而不是之前使用的表,使用这些可更新的视图。我不确定这里是否需要数据库迁移。我将不胜感激任何帮助。

4

1 回答 1

2

设法通过创建一个不执行任何操作并告诉 DbContext 使用此 Databaseinitlizer 而不是默认值的 New DatabaseIntializer 来解决它。这是代码:

internal class DatabaseInitializer : IDatabaseInitializer<DB>
{

  public void InitializeDatabase(DB context) {}      

}

public class DB : DbContext, IDbContext
{
    public DB() : base("name=ClientMgmtConnection") 
    {            
       System.Data.Entity.Database.SetInitializer(new DatabaseInitializer());
    }
}
于 2012-10-16T20:48:39.997 回答