我正在尝试使用DbContext“MyDbContext”创建数据库。
我正在使用带有SQL Server和Windows身份验证的SQL Server 2008 R2。
我的DbConfiguration
:
public class HostDbConfiguration : DbConfiguration
{
public HostDbConfiguration()
{
SetProviderServices("System.Data.SqlClient", System.Data.Entity.SqlServer.SqlProviderServices.Instance);
SetDefaultConnectionFactory(new LocalDbConnectionFactory("v8.0", @"Server=Eran-PC;MultipleActiveResultSets=True;Trusted_Connection=true"));
}
}
数据库将从DbContext
创建,但在初始化时
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDbContext>());
using (var db = new MyDbContext())
{
db.Database.Initialize(true);
}
我得到以下异常:
无法打开登录请求的数据库“MyDB”。登录失败。
用户'Eran-PC \ Eran'登录失败。
有什么想法吗?
旁注:
我在SQL Server的安全性中检查了用户'Eran'的权限当我将所有内容检查为Grant并重新打开SQL Server Management Studio时,没有任何内容被检查为“Grant”或“Deny”,它全部归零并且没有任何内容再次检查。
如果我事先创建一个空数据库MyDB
,初始化时会出现以下错误
无效的对象名称'dbo .__ MigrationHistory'
这是什么意思?
编辑:
根据sqlauthority,可以通过将Login的UserMapping添加到想要的数据库来解决这个问题,如何通过EF的DbConfiguration完成?