2 つの異なるデータベース スキーマに接続するアプリを作成しています。これらのスキーマの 1 つを読み取り専用にする必要があります。接続を読み取り専用に設定する方法はありますか? 読み取り専用ユーザーを作成する権限がありません。
質問する
85 次
2 に答える
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 に答える
0
接続モード プロパティを ModeRead に設定します
接続モード = 1
于 2012-07-16T22:26:16.967 に答える