这是数据库的连接字符串:
private string _connString => $"Data Source={Server.MapPath(@"~Data")}\PhoneNumbers.sqlite";
我的朋友在.NET框架程序中使用了此行,并且可以使用。我们俩都尝试了.NET Core的变体,但是这一行是错误的。它没有有用的错误代码。我认为Visual Studio 2017认为这是无效的声明。
为什么这是错误?
字符串插值没有错。
Server.MapPath
在.NET Core中不可用。此类(和方法(是特定于IIS的。
ASP .NET核心的全部要点是使框架服务器不可知,因此介绍了几个新的抽象。
您需要使用IHostingEnvironment
解决路径。
博客文章带有示例。
字符串插值是一个C#6.0功能,因此,在理论上,只要您拥有VS2015 。Core 1.0用C#6.0运送。但是,两个框架之间可能会有一些差异,以防止该功能在核心中起作用。您可以重写该行,以使代码向后兼容。
private string _connString = String.Format("Data Source={0}\PhoneNumbers.sqlite", Server.MapPath(@"~Data"));