C# EntityframeworkCore:删除调试文件夹中的本地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

我正在使用EntityframeworkCore和LocalDB MDF文件

我用下面的代码在
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;
    }
}