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 に答える