我只想在我的开发环境中快速启动默认数据库。
有什么最简单的方法可以解决这个问题吗?
我只想在我的开发环境中快速启动默认数据库。
有什么最简单的方法可以解决这个问题吗?
<add name="MFCConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MFC.mdf;Initial Catalog=MFC;Integrated Security=false;User ID=sa;Password=123"
providerName="System.Data.SqlClient" />
记得将sa的默认数据库从master更改为MFC,并将Integrated security设置为false。 顺便说一下,sa通常是禁用的,所以请先在SQL Server管理工具中启用并测试它。
Integrated Security=false
对我来说是答案。设置是在本地运行IIS并在该服务器上运行SQLEXPRESS的服务器。尽管一切都设置好了,但无法让SQL服务器允许我的帐户创建数据库。对我来说,这是一篇很棒的帖子。谢谢! - Alan <connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=MyMachine;Initial Catalog=Videos;Integrated Security=True" providerName="System.Data.SqlClient"
/>
</connectionStrings>
5) 当我设置上下文时,我需要引用DefaultConnection:
using System.Data.Entity;
namespace Videos.Models
{
public class VideoDb : DbContext
{
public VideoDb()
: base("name=DefaultConnection")
{
}
public DbSet<Video> Videos { get; set; }
}
}
6) 在包管理器控制台中运行“update-database”以创建表。
记住,在 Configuration.cs 中可以使用 Seed() 在创建时插入值:
protected override void Seed(Videos.Models.VideoDb context)
{
context.Videos.AddOrUpdate(v => v.Title,
new Video() { Title = "MyTitle1", Length = 150 },
new Video() { Title = "MyTitle2", Length = 270 }
);
context.SaveChanges();
}
在开发SQL服务器上以拥有创建数据库权限的帐户运行您的应用程序。如果您使用SQL身份验证,请在连接字符串中指定具有此权限的SQL登录凭据。默认情况下,在SQL服务器安装期间指定的管理员帐户具有此权限,但您也可以将其添加到其他登录名中。
我在使用EF 6.0和Code First时遇到了同样的问题。如果您有多个项目具有不同的连接字符串,并且从包管理器控制台运行update-database,即使选择了正确的默认项目,Visual Studio也会从启动项目读取连接字符串,因此如果该启动项目上没有连接,则会出现权限被拒绝的错误。
您可以通过将正确的项目设置为启动项目(仅用于更新数据库)来解决此问题。