C# EntityframeworkCore:删除调试文件夹中的本地MDF文件
我正在使用EntityframeworkCore和LocalDB MDF文件 我用下面的代码在C# EntityframeworkCore:删除调试文件夹中的本地MDF文件,c#,.net,entity-framework-core,localdb,C#,.net,Entity Framework Core,Localdb,我正在使用EntityframeworkCore和LocalDB MDF文件 我用下面的代码在Datacontext中附加MDF。 如您所见,代码也可以在StackOverflow中找到:) 只需定义MDF必须位于输出文件夹中,即可获得MDF: internal static class DatabaseFileHandler { internal static string GetLocalMdfFileFullname() { var mdfFilePath
Datacontext
中附加MDF。
如您所见,代码也可以在StackOverflow中找到:)
只需定义MDF必须位于输出文件夹中,即可获得MDF:
internal static class DatabaseFileHandler
{
internal static string GetLocalMdfFileFullname()
{
var mdfFilePath = GetAssemblyPath();
var result = Path.Combine(mdfFilePath, Infrastructure.Constants.DATABASEFILE_NAME);
return result;
}
private static string GetAssemblyPath()
{
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
string result = Uri.UnescapeDataString(uri.Path);
result = Path.GetDirectoryName(result);
return result;
}
}
MDF文件本身定义为“内容”,并带有“更新时复制”
现在,有趣的是,在某些情况下,当我调试程序并停止时,在下一次启动时,MDF将从输出文件夹中删除
不幸的是,我甚至不能说当我停止或启动程序时文件是否被删除,因为这种情况很少发生
有趣的是,如果我清理解决方案,这不会发生,因此这一定是另一种我不知道的Visual Studio机制。为什么要使用AttachDbFilename?我只使用InitialCatalog=mydb,它工作正常,mdf是在用户目录中创建的。为什么使用AttachDbFilename?我只使用InitialCatalog=mydb,它工作正常,mdf是在用户目录中创建的。
internal static class DatabaseFileHandler
{
internal static string GetLocalMdfFileFullname()
{
var mdfFilePath = GetAssemblyPath();
var result = Path.Combine(mdfFilePath, Infrastructure.Constants.DATABASEFILE_NAME);
return result;
}
private static string GetAssemblyPath()
{
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
string result = Uri.UnescapeDataString(uri.Path);
result = Path.GetDirectoryName(result);
return result;
}
}