【问题标题】:Failed to update database "*.mdf" because read only EntityFramework无法更新数据库“*.mdf”,因为只读 EntityFramework
【发布时间】:2013-01-14 17:28:57
【问题描述】:

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

Failed to update database "*.mdf" read only

我将我的数据库放在“DAL/AppData”文件夹中的 .exe 文件附近。

我怎样才能允许其他机器上的写访问? 我可以通过编程方式完成吗?

我听说我可以将 DB 放入 AppRoaming 文件夹,但这不是我的变体。

提前致谢。

【问题讨论】:

  • 只读数据库 - 实体框架甚至不是游戏的一部分。
  • 以下链接适用于你:- stackoverflow.com/questions/5713416/…>

标签: c# .net entity-framework permissions


【解决方案1】:

我将我的数据库放在“DAL/AppData”文件夹中的 .exe 文件附近。

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

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

哎哟。

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

我怎样才能允许其他机器上的写访问?我可以通过编程方式完成吗?

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

我听说我可以将 DB 放入 AppRoaming 文件夹,但这不是我的变体。

首先,除非您确实计划漫游,否则这将是愚蠢的 - SQL 应该进入本地文件夹,从不漫游。

第二,“不是我的变种”就像“嘿,我违反规则驾驶汽车,我该怎么做才能不被超速罚单”。并且“遵守法律不是我的变种”。您的变体是 WINdows 不关心的。了解如何根据 Windows 指南安装软件,该指南非常清楚不应该更改数据的位置。

【讨论】:

  • 好的,我明白我的错误了。非常感谢,我现在就按照这种方式工作。
  • 我不知道我在与规则作斗争,我是MS SQL的新手
猜你喜欢
  • 2011-08-08
  • 1970-01-01
  • 2014-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多