我首先使用实体框架代码和 SQL Server 2008 进行开发。
我想支持这种常见的安装方案:
- 数据库管理员手动创建一个新数据库和一个仅能访问该数据库的新用户(
database_owner
权限) - 我的应用程序已配置这些数据库详细信息和新用户的登录信息
- 我的应用程序使用 Entity Framework 自动初始化数据库(创建表、 View 等)
但是,当我尝试让 Entity Framework 初始化数据库时:
context.Database.Create();
我会得到一个异常,因为此方法尝试创建数据库,而不仅仅是在数据库内创建表、 View 等。
如何让 Entity Framework 使用已为其创建的数据库,使用没有“创建数据库”权限的用户来初始化数据库?
最佳答案
有一个仅创建表的 IDatabaseIntializer 实现:
http://nuget.org/List/Packages/EFCodeFirst.CreateTablesOnly
这里也有很好的解决方案:
Entity Framework CTP 4 - Code First Custom Database Initializer
关于sql-server - Entity Framework 创建表没有 "database create"权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6645199/