2

我已经创建了我的第一个 c#MVC3 EntityFramework 应用程序并移入 IIS 文件夹......在本地运行它之后

数据库“master”中的 CREATE DATABASE 权限被拒绝。

问题是我已经在 MS SQL Management Studio 中创建了 SQL 帐户,并且我的连接字符串的登录名和密码输入如下:

<connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;user id=kwestionariusz;password=PASSWORD;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>

另外,我在其中添加了相同的内容,但我不知道是否有必要:

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="Data Source=.\SQLEXPRESS; user id=kwestionariusz; password=PASSWORD; Integrated Security=True; MultipleActiveResultSets=True" />
  </parameters>
</defaultConnectionFactory>
</entityFramework>

我错过了什么吗?

4

1 回答 1

2

如果您首先使用代码,请确保用户具有创建数据库的权限。

class BlogContext : DbContext
{
        public DbSet<BlogEntry> BlogEntires
        {
            get;
            set;
        }
}

连接的名称必须与 db 上下文的类名匹配:

<configuration>
  <connectionStrings>
    <add
      name="BlogContext"
      providerName="System.Data.SqlClient"
      connectionString="Server=(local);Database=ef4;Trusted_Connection=true;"/>
  </connectionStrings>
</configuration>

如果您的数据库已经存在,请修改 DbContext 的构造函数:

    class BlogContext : DbContext
    {

        public BlogContext()
        {
           System.Data.Entity.Database.SetInitializer(
             new CreateDatabaseIfNotExists<BlogContext>());
        }

        public DbSet<BlogEntry> BlogEntires
        {
            get;
            set;
        }
    }
于 2012-05-18T12:41:20.447 回答