gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 06:22:42 27 4
gpt4 key购买 nike

我有一个简单的问题。在不同的项目中,我的应用程序有 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 的位置应确定为:

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

这简化了所有应用程序数据管理,并使用户可能使用的所有计算机上的数据位置始终无视应用程序的安装方式。此外,这保证了用户将拥有对 DB 文件夹的完全访问权限。如果您的项目有其他功能需求,数据位置应相应调整。

关于c# - 如何将两个不同的项目指向同一个 SQLite 数据库文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47179138/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com