EntityFramework:从ProgramData文件夹中读取SDF文件?

时间:2011-04-07 14:38:15

标签: entity-framework sql-server-ce

我正在开发一个使用SQL Compact 4.0作为其数据存储的WPF / Entity Framework 4应用程序。我尝试将数据库(SDF)文件存储在c:\ProgramData\MyCompany\MyApp\文件夹中。当我的应用程序尝试打开数据存储时,我收到以下异常:“基础提供程序在打开时失败。”如果文件存储在用户文件夹中,则文件打开正常。

我认为出于安全原因抛出异常 - 我怀疑Windows,.NET,EF或SQL Compact不允许我将SDF文件存储到c:\ProgramData文件夹。那是对的吗?如果是这样,我很困惑,因为这通常是我的应用程序存储文本日志的地方。如果我可以登录到该文件夹​​,为什么我不能在那里放一个SDF文件?

如果我无法存储到c:\ProgramData,文件应该存储在何处,以便机器上的多个用户可以访问同一个文件?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

在连接字符串中,是否使用绝对路径或相对路径引用数据库位置?

如果您使用相对路径引用并且您的应用程序未从“c:\ ProgramData \ MyCompany \ MyApp \”运行,则可能是问题,因为应用程序将始终尝试在其正在运行的文件夹中查找您的数据库文件。

如果有帮助,请告诉我。

Riana

答案 1 :(得分:0)

我认为您需要将MyApp文件夹的访问控制列表修改为Users RW