filePath が null なのはなぜですか? 相対ファイルパスを取得する方法についてのアイデアはありますか?
internal sealed class Configuration : DbMigrationsConfiguration<MvcProject.Models.FileDb>
{
public Configuration()
{
// code here is not relevant to question
}
protected override void Seed(MvcProject.Models.FileDb context)
{
string filePath = System.Web.HttpContext.Current.Server.MapPath("~/Content/File.txt");
// read File.txt using filePath and update the database
}
}
エンティティ フレームワークが ASP .NET MVC プロジェクトに設定されたときに作成された Migrations フォルダーの Configuration.cs ファイルに上記のコードがあります。
パッケージ マネージャー コンソールで「Update-Database -Verbose」を実行すると、filePath が null であるというエラーが表示されます。
ファイルへの絶対 URL を使用して filePath を手動で設定した場合:
string filePath = "C:/Users/User1/My Documents/Visual Studio 2012/Projects/MvcProject/Content/File.txt";
すべて正常に動作します。
明らかに、目標は、さまざまな開発者がさまざまなセットアップで作業できるようにするための相対パスを用意することです。
正直なところ、必要なのはファイルだけです。必ずしもパスではありません。どんな助けでも大歓迎です。