【发布时间】:2019-12-03 00:54:42
【问题描述】:
Microsoftdocumentation 表示使用代码优先方法的应用程序可以简单地指定模型,如果数据库不存在,则会创建它。
但我希望我的应用程序将其数据存储在最终用户硬盘上的数据库中。所以我可以在我的连接字符串中引用 localdb(用于 SQL Server),但我仍然不知道用户机器上的哪个文件夹将包含数据库文件。
如果用户不知道自己的数据文件在哪里,如何备份?
有什么方法可以询问DbContext 对象的文件存储在哪里?
我知道我可以在通过 SQL 创建数据库时指定数据库的路径,但有人告诉我,将 EF 样式的数据库交互与非 EF 数据库交互混合使用不是一种好的形式(来自 ADO.NET )。
【问题讨论】:
-
您需要发送自定义 SQL 查询来获取文件位置,例如
SELECT name, physical_name AS current_file_location FROM sys.master_files。 How to send a raw query -
酷 - 谢谢@JohnWu,我会试试看。
-
@JohnWu ,我无法让它工作......我似乎无法正确获取对 DbContext 的 SQL 查询。似乎我有 2 个提交查询的选项:context.Database.SqlQuery(
, query) 或 context. .SqlQuery(query)。这些都不适合我,因为我似乎无法获得正确的 ...您能为此显示一两行代码吗...? -
认为你必须为这个结果集定义一个类型。好像很麻烦我个人会跳过 EF 并直接使用
SqlCommand和SqlDataReader。没有规定说你不能。 -
嗯...我得看看它,因为到目前为止我主要关注的是 EF...
标签: c# .net entity-framework