0

我正在编写一个连接到 2 个不同数据库模式的应用程序。这些模式之一应该是只读的。有没有办法将连接设置为只读?我无法创建只读用户。

4

2 回答 2

0

将连接模式属性设置为 ModeRead

配置模式 = 1

于 2012-07-16T22:26:16.967 回答
0

一个更好的方法是根据用户是否被允许修改数据来禁用你的 UI 元素。您的方法存在的问题是 EF API 并非设计用于只读模式。使用只读连接时调用SaveChnages并抛出异常。

您可以执行类似的操作来防止 EF 在只读连接上更新。

public class MyContext : DbContext
{
    private bool isReadOnly;
    public MyContext(string conn, bool isReadOnly)
    :base(conn)
    {
         this.isReadOnly = isReadOnly;
    }

    public override int SaveChanges()
    {
         if (isReadOnly)
         {
              return 0; //or throw exception
         }

         return base.SaveChanges();
    }
}

ObjectContext有点棘手。您可以取消设置SavingChanges事件中的所有更改。

于 2012-07-17T00:41:23.733 回答