无法更新数据库“* .mdf”,因为只读EntityFramework

时间:2013-01-30 19:08:10

标签: c# .net entity-framework permissions

我有一个C#.NET Framework 4.0桌面应用程序,实体框架为DAL。 当尝试将数据保存到任何机器上的DBContext但我的时候,我收到了异常

Failed to update database "*.mdf" read only

我将数据库保存在.exe文件附近,文件夹“DAL / AppData”。

如何在其他计算机上允许写入权限? 我可以通过编程方式进行吗?

我读过我可以把DB放到AppRoaming文件夹中,但这不是我的变种。

提前致谢。

1 个答案:

答案 0 :(得分:3)

  

我将数据库保存在.exe文件附近,文件夹“DAL / AppData”。

是。可能你的意思是这是在程序文件夹中,你知道。

过去10年的Windows规格对于普通用户来说是“只读”吗?

OUCH。

它们是用于存储数据的文件夹。有一个SpecialFolders枚举来获取每个这样的文件夹的有效路径。

  

如何在其他计算机上允许写入权限?我可以通过编程方式进行吗?

在SQL Server上,这是通过允许另一台计算机访问服务器而不是数据文件来完成的。即您连接到正在加载数据库的另一台计算机上的SQL Server。

  

我读过我可以把DB放到AppRoaming文件夹中,但这不是我的变种。

首先,除非你真的计划漫游,否则这将是愚蠢的 - SQL shold进入本地文件夹,永远不会漫游。

其次,“不是我的变种”就像“嘿,我开车违反规则,我有什么不能获得超速罚单”。并且“遵守法律不是我的变体”。你的变体是WIndows不关心的东西。了解如何根据Windows指南安装软件,在非常明确的情况下,不应更改数据。