我们首先在数据库表中使用实体框架代码。现在,数据库已移至另一个开发服务器,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从这里使用这个数据库而不是之前使用的表,使用这些可更新的视图。我不确定这里是否需要数据库迁移。我将不胜感激任何帮助。
答案 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());
}
}