2017-01-24 5 views
0

Web apiで作業していて、App_Dataフォルダにローカルデータベースが必要ですが、Entity Frameworkコードファーストを使用していますが、App_Dataにデータベースを作成しません。Entity FrameworkでApp_Dataにデータベースが作成されない

ここ

は私の接続文字列です:

<connectionStrings> 
    <add name="TestDBContext" 
     connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True;AttachDBFilename=|DataDirectory|TestDB.mdf;User Instance=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

私はショーにすべてのプロジェクト]メニューの[ファイルとかくかくしかじか

が、データベースを使用

に作成されています

どうすれば修正できますか?

+0

接続文字列に 'AttachDbFileName ='セクションを追加してください。 [参考](https://msdn.microsoft.com/en-us/library/jj653752(v = vs.110).aspx#localdb) –

答えて

0

Sql LocalDBをインストールすると問題が解決します

1

はい、これがデフォルトです。解決するには、2つの方法:

1)あなたのコンテキストのコンストラクタに接続文字列を追加します。

public ApplicationDbContext() 
     : base("TestDBContext") { } 

2)あなたの設定にデフォルトの接続ファクトリを追加します。

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
    <parameters> 
     <parameter value="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True;AttachDBFilename=|DataDirectory|TestDB.mdf;User Instance=True" /> 
    </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 

https://msdn.microsoft.com/en-us/data/jj556606

+0

こんにちは!あなたのコードを使用しますが、実際には新しいデータを挿入しようとするとエラーが発生します。エラーテキストは次のとおりです:指定されたファイルが見つかりません – Hooman

+0

おそらくデータベース作成時に発生します。 SQL Express専用のUser Instance = Trueを削除してみてください。 –

+0

また、AttachDBFilename = | DataDirectory | \ TestDB.mdfにバックスラッシュを追加します –

0
を参照してください。

通常、App Configの設定を「AttachDbFileName」に変更する必要があります。それ以外の場合は、デフォルトでSQL Server Expressインスタンスに設定します。通常、あなただけの添付にモードを設定することができますし、この修正:あまりにもあなたのためにここ

<add name="ConnectionStringName" 
    providerName="System.Data.SqlClient" 
    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\DatabaseFileName.mdf;InitialCatalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" /> 

が接続上のMSのページです: https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlce

\私は真剣にお勧めしますが、これは小さなコンパクトでない場合あなたが接続されたデータベースをやっていない小さな成長をするアプリ。これは大規模アプリケーションの導入や一般的な悪い習慣の場合、データベースがほとんど常に小さくなることが分かっている場合を除き、悪い考えです。しかし、ちょうど私の2セント。

関連する問題