如何首先使用代码在实体框架中使用可更新视图

时间:2012-10-16 03:19:32

标签: entity-framework

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

的步骤进行操作

entity-framework-code-first-and-pre-generated-views

how-to-work-with-updatable-views

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

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

1 个答案:

答案 0 :(得分:2)

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

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());
    }
}