2

私は次のプロジェクトソリューションを持っています:

  • App_Data ディレクトリに SQL データベース (mdf ファイル) がある ASP.NET MVC Web アプリケーションがあります。

  • migratordotnetからいくつか移行したクラス ライブラリがあり ます。私のビルド ファイルでは、移行を実行できるように SQL データベースの場所を指定する必要があります。

現時点では、移行プロジェクトでは、接続文字列で SQL データベースにアクセスするためにハードコードされたパスを使用しています。次のようになります。

connectionString="Data Source=.\SQLExpress; Integrated Security=true; AttachDbFilename=C:\MySolution\MyMVCProject\App_Data\MyDatabase.mdf"

これは私がやりたい方法ではありません。また、相対パスも使用できません ( ..\MyMVCPProject\AppData\MyDatabase.mdfmigratordotnet で使用される SQL クラスが正しく変換できないためなど) |DataDirectory|Web.ConfigこのようなWebプロジェクトで:

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True;User Instance=True"

どうすればこれを達成できますか? 移行プロジェクトでその接続文字列を使用できません。は|DataDirectory|.NET Framework のインストール パスに移動し、そこでデータベース ファイルを探すためです。

4

2 に答える 2

2

次のようなものが必要です (VB .NET コード):

connectionString="Data Source=.\SQLExpress; Integrated Security=true; AttachDbFilename=" & Server.MapPath("~\App_Data\MyDatabase.mdf")

Server.MapPath() は、実行時に相対パスを完全修飾パスに変換します。

于 2009-04-01T19:40:31.963 に答える
2

データベースを SQL Express に永続的に接続することだけを検討しましたか? そうすれば、両方のプロジェクトで同一の接続文字列を使用でき、どちらもファイル システム パスに関連付けられません。

于 2008-12-19T10:47:24.670 に答える