我使用 ASP.NET Entity Framework 的 Code First 从模型创建数据库,当模型更改后需要重新创建数据库时,登录似乎失败。
在 Global.asax 中,我有以下内容:
protected void Application_Start()
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<EntriesContext>());
// ...
}
在我的控制器中,我有以下内容:
public ActionResult Index()
{
// This is just to force the database to be created
var context = new EntriesContext();
var all = (from e in context.Entries select e).ToList();
}
当数据库不存在时,它的创建没有问题。但是,当我对模型进行更改、重建和刷新时,我收到以下错误:
Login failed for user 'sa'.
我的连接字符串如下所示:
<add name="EntriesContext"
connectionString="Server=(LOCAL);Database=MyDB;User Id=sa;Password=password"
providerName="System.Data.SqlClient" />
登录确实有效,因为我可以使用这些凭据从 Management Studio 连接到服务器和数据库。
如果我手动删除数据库,一切正常,并且数据库按预期重新创建,架构反映了对模型所做的更改。
似乎密码或对数据库的访问权限正在丢失。
我还需要做些什么来使它正常工作吗?