2017-10-20 13 views
0

を作成しながら、私は、Entity Frameworkを使用して、私のASP.NET MVCプロジェクトのいくつかの問題があります。ASP.NET MVCない作品データベース

ASP.NET MVCプロジェクトはDbContextを拡張DbDataというクラスがあります。この問題は(私はウェブ上でそれを検索ではなく、まだ動作します)

これらは私のシナリオです接続文字列についてです。コントローラはこのクラスの新しいインスタンスを呼び出し、SaveChangesを呼び出してデータベースを作成します。データベースの作成に問題があります。

  1. 私は特定の構成なしで実行するとコンテキスト・インスタンスを検査した場合、私はこの例外

    無効な操作を取得します。接続が閉じている

    データソースはdafaultによって.\SQLEXPRESSです。私はDbData : base("name = dbconn")に名前web.configの設定や名前の特定のSQL Serverデータベースとの接続文字列を使用しようとすると、結果がデータベースに

  2. を作成することはできません、私は「dbconn」web.configに存在しないというエラーが出ます。

コード:

public class DbData : DbContext 
{ 
    public DbData() 
     //: base("Name=dbconn") 
     { 

     } 
     public DbSet<Info> infos {get;set;} 
} 

これはWeb構成(カスタム接続文字列を使用しようとしている)

<add name="dbconn" providerName="System.Data.SqlClient" connectionString="Server=MYPC\SQL2012;MultipleActiveResultSets=True;Database=MvcDB;Persist Security Info=True;Integrated Security=SSPI;" /> 

web.configファイルにEntityFrameworkセクションです:

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 

私は狂っています。お願い助けて。おかげ

+0

あなたがセクションを持つ必要があります。 DaniDev

+0

web.configファイルのためのあなたのconfig設定を投稿することができます。それがあなたがそれを追加/設定する必要がない場合。あなたが持っている場合は、私たちがあなたを助けることができるように投稿してください。 – DaniDev

+0

':base(" name = dbconn ")の代わりに':base( "dbconn") 'を試してください –

答えて

0

次のはずで、あなたのデフォルトLocalDB(あなたのケースではSQLEXPRESS)を使用したい場合は、あなたのタグ:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
      <parameter value="localdbinstancename" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 

あなたが設定されて(特定のデータベースサーバを使用するために欠けている場合

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" > 
     <parameters> 
      <parameter value="Data Source=.; Integrated Security=True; MultipleActiveResultSets=True" /> 
     </parameters> 
     </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 

*重要な違いは、タグ内のConnectionFactory参照です:接続文字列)あなたの設定ファイルは次のようになります。

*パラメータタグは、接続文字列が指定されているかに応じて、必要でないかもしれません。

関連する問題