2016-07-28 4 views
0

最近エンティティフレームワークを使用していますが、WPFアプリケーションは少しうまく機能しますが、完全にうまく機能します。それはデータを格納して検索するにもかかわらず、私はフレームワークによって作成されたデータベースを見たり見つけたりすることはできません。私がSqlServer管理スタジオを起動するとき、新しいデータベースはありません。私もこのパス "C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA"を検索しましたが、見つかりませんでした。別の奇妙なことは、私は設定ファイル内に接続文字列を置かなかったということですが、私が言ったように、それは匿名のデータベースのどこかにデータを格納します。 正確にデータベースがどこにあるのか教えていただけますか? 私はMicrosoft SQL Server 2008 R2を使用しています。エンティティフレームワークによって自動的に作成されるデータベースの場所

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

これはlocaldbになる可能性があります。 %UserProfile%フォルダまたは\ App_Dataを確認してください。 SQL Express DBを作成した場合、。\ SQLEXPRESSインスタンスに格納されます。 https://blogs.msdn.microsoft.com/sqlexpress/2011/10/28/localdb-where-is-my-database/ –

+0

標準データベースフォルダは、実行中のアセンブリのパスにデータベース名としての接続文字列です。私はあなたが接続文字列なしで完全に行くことができるとは思わない。 – DevilSuichiro

+0

奇妙なことに、接続文字列を使わずに行くことができます。 EFはそれをどのように処理するか(SQL Express vs localdb)を反転しました。 http://david.gardiner.net.au/2015/04/entity-framework-6-connection-string.html –

答えて

0

web.configファイルで接続文字列で動作します。
例:あなたの文脈では

のWeb.config

<connectionStrings> 
    <add name="AnyName" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb);Initial Catalog=DbName;Integrated Security=True;MultipleActiveResultSets=True" /> 
    </connectionStrings> 

public Context() 
     : base("AnyName") 
    {} 

名("AnyName")は、コンテキストとたconnectionStringで同じでなければなりません。

希望すると便利です!

関連する問題