如何将两个不同的项目指向同一个 SQLite 数据库文件?

2023-12-29

我有一个简单的问题。我的应用程序有 2 层,前端层和数据访问层,位于不同的项目中。我正在通过数据访问层中的迁移在数据访问层中创建一个 sqlite 数据库,现在我想使用连接字符串。我正在数据访问层中创建一个上下文,如下所示:

public class TodoDbContext : DbContext
{
    public DbSet<Activity> Activieties { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite(@"Data Source=todo.db");
    }
}

看起来很简单吧,db是在数据访问层项目中创建的。但是当我运行前端项目程序时,它正在寻找一个数据库,但在前端项目文件夹中。我通过添加以下内容来检查:

 var test = Directory.GetCurrentDirectory(); 

在上面的方法中。另外,当我将连接字符串修改为直接路径时,例如:

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite(@"Data Source=C:\Users\Administrator\Desktop\TodoList\TodoDataAccess\todo.db");
    }

它有效,所以我的问题是我能做些什么来改变它?


为了更轻松地访问您的应用程序数据,只需将其放入众所周知的文件夹中即可。根据您的应用程序名称,我假设您的应用程序是桌面应用程序,并将用户特定的数据存储在 SQLite DB 中,这些数据应该可以从不同的计算机访问。 DB 的位置应确定为:

    var sqlitePath = Path.Combine(
        Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), 
        @"<YourAppName>\todo.db");

这简化了所有应用程序数据管理,并使用户可以使用一致的所有计算机上的数据位置,而不管应用程序的安装方式。此外,这保证了用户拥有对数据库文件夹的完全访问权限。如果您的项目有其他功能要求,则应相应调整数据位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将两个不同的项目指向同一个 SQLite 数据库文件? 的相关文章

随机推荐