[英]How to read a file content from EF Configuration.cs file?
我正在使用EF 6代碼庫遷移。 我想從Configuration.cs Seed()方法中讀取文件以作為默認數據插入。 我正在使用HostingEnvironment.MapPath()如下:
string _homeContent = System.IO.File.ReadAllText( HostingEnvironment.MapPath(@"~/Data/DefaultContents/Home.html"));
但是,當我從Package-Management Console運行Update-database命令時,HostingEnvironment.MapPath返回null值。
運行種子方法。
System.ArgumentNullException:值不能為null。
參數名稱:System.IO.File.ReadAllText的路徑(字符串路徑)
請告知如何從Configuration.cs Seed()方法讀取物理文件。
我可以自己回答。
由於HttpContext對象尚未准備好,所以Server.MapPath和HostingEnvironment.MapPath暫時不可用。
AppDomain.CurrentDomain.BaseDirectory返回“ .. \\您的項目目錄\\ bin”
例如C:\\ YourSolutionDirectory \\ YourProjectDirectory \\ bin
但是我們需要從“ bin ”文件夾上移 ,以便使用Path.Combine()方法並獲取確切的文件路徑。
string homeFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", @"Data\DefaultContents\Home.html");
結果:C:\\ YourSolutionDirectory \\ YourProjectDirectory \\ Data \\ DefaultContents \\ Home.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.