63

AppConfig では使用 |DataDirectory|できますが、ドキュメントが見つかりませんか?

4

6 に答える 6

79

|DataDirectory|は置換文字列であるため、データベース ファイルの場所を個別に構成できます。

したがって、代わりに:

SqlConnection c = new SqlConnection (
   @"Data Source=.\SQLDB; AttachDbFilename=C:\MyDB\Database.mdf;Initial Catalog=Master");

次のことを行います。

// Set |DataDirectory| value
AppDomain.CurrentDomain.SetData("DataDirectory", "C:\myDB");

// SQL Connection String with |DataDirectory| substitution string
SqlConnection c = new SqlConnection (
   @"Data Source=.\SQLDB; AttachDbFilename=|DataDirectory|\Database.mdf;Initial Catalog=Master");
于 2009-09-11T06:53:52.000 に答える
16

MSDN ソーシャル フォーラムで、この回答を見つけることができます。

|データディレクトリ| (パイプ記号で囲まれている) は、データベースへのパスを示す置換文字列です。データベースへのフル パスが別の場所でシリアル化される可能性があるため、いくつかの問題につながるフル パスをハードコーディングする必要がなくなります。DataDirectory を使用すると、プロジェクトの共有やアプリケーションのデプロイも簡単になります。

たとえば、次の接続文字列の代わりに:

"Data Source= c:\program files\MyApp\Mydb.sdf"

DataDirectory を使用すると、次の接続文字列を使用できます。

“Data Source = |DataDirectory|\Mydb.sdf”

DataDirectory プロパティを設定するには、AppDomain.SetData メソッドを呼び出します。DataDirectory プロパティを設定しない場合、データベース フォルダーへのアクセスに次の既定の規則が適用されます。

  • ユーザーのコンピューター上のフォルダーに配置されるアプリケーションの場合、データベース フォルダーはアプリケーション フォルダーを使用します。
  • ClickOnce で実行されているアプリケーションの場合、データベース フォルダーは、作成された特定のデータ フォルダーを使用します。
于 2009-09-11T06:58:53.297 に答える
8

間違った人!|データディレクトリ| インスタンスが構成されている mssql\data ディレクトリを指します。

たとえば、Visual Studio 2012 を SQL Express と組み合わせて使用​​しています。|データディレクトリ| すべての MDF ファイルを C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA の下に配置します。ソリューションの app_data フォルダーではなく、SQL Express がインストールされた場所です。

また、ファイルの名前は、私のweb.configで指定されているように、Movies.mdfではなくMVCMovie.Models.MovieDBContextです。

app_data の下に適切に配置するには、ビジュアル スタジオのどこかで構成する必要があると考えています。

于 2013-04-16T17:45:03.690 に答える
4

http://msdn.microsoft.com/en-us/library/aa478948.aspx

|データディレクトリ| 接続文字列の一部は、MDF ファイルが App_Data ディレクトリにあることを指定します。

于 2012-06-14T17:38:11.100 に答える
4

これを解析し、必要に応じて MDF を作成する SqlConnectionHelper という内部クラスがあります。

そのクラスと|DataDirectory|について見つけることができる唯一のMSドキュメントは次のとおりです。マクロ: http://msdn.microsoft.com/en-us/library/aa478948.aspx .

于 2009-09-11T06:54:22.733 に答える
3

これは、コード ファーストの移行を使用している場合に関連する可能性があります。

VisualStudio 2013 (少なくとも) では、Update-Database コマンドを実行すると、データ ディレクトリは、Visual Studio で現在構成されている「スタートアップ プロジェクト」からの相対パスになります。

(パッケージ マネージャー コンソールで選択した) 別のプロジェクトで Update-Database を実行しても、現在選択されているスタートアップ プロジェクトの App_Data にデータベースが作成されます。

于 2014-07-08T11:15:59.593 に答える