我正在编写一个连接到 2 个不同数据库模式的应用程序。这些模式之一应该是只读的。有没有办法将连接设置为只读?我无法创建只读用户。
问问题
85 次
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 回答