Microsoft文档指示使用代码优先方法的应用可以简单地指定模型,如果数据库尚不存在,则将创建数据库。
但我希望我的应用程序将其数据存储在最终用户硬盘上的数据库中。所以我可以在连接字符串中引用 localdb(用于 SQL Server(,但我仍然不知道用户计算机上的哪个文件夹将包含数据库文件。
如果用户不知道数据文件的位置,她如何备份它们?
有没有办法询问DbContext
对象的文件存储在哪里?
我知道我可以在通过 SQL 创建数据库时指定数据库的路径,但有人告诉我,将 EF 样式的数据库交互与非 EF 数据库交互(从 ADO.NET 年开始(混合在一起并不是好的形式。
来自Microsoft documentaion 页面:
用户数据库文件存储在用户指定的位置,通常 在 C:\Users\UserName\Documents\ 文件夹中的某个位置。
因此,安装 SQL Express localdb 的人员或安装程序知道数据库在哪里。
编辑:若要在运行时设置连接字符串,可以将连接字符串(而不是连接字符串名称(传递给数据库上下文。可以自行创建连接字符串,也可以使用 EntityConnectionStringBuilder。
// Manually build the connection string
var connectionString = "Server=(LocalDB)MSSQLLocalDB; Integrated Security=true;AttachDbFileName=" + pathToDatabase;
var dbContext = new YourDBContext(connectionString);