繁体   English   中英

如何从EF Configuration.cs文件读取文件内容?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM