エンティティフレームワークのデータコンテキストをサードパーティのプラグインに公開する必要があります。この目的は、これらのプラグインがデータのみをフェッチし、挿入、更新、削除、または他のデータベース変更コマンドを発行させないようにすることです。したがって、どのようにデータコンテキストまたはエンティティを読み取り専用にすることができますか。エンティティフレームワークのデータコンテキストを読み取り専用にする方法
83
A
答えて
133
読み取り専用ユーザーとの接続に加えて、DbContextにできることがいくつかあります。
public class MyReadOnlyContext : DbContext
{
// Use ReadOnlyConnectionString from App/Web.config
public MyContext()
: base("Name=ReadOnlyConnectionString")
{
}
// Don't expose Add(), Remove(), etc.
public DbQuery<Customer> Customers
{
get
{
// Don't track changes to query results
return Set<Customer>().AsNoTracking();
}
}
public override int SaveChanges()
{
// Throw if they try to call this
throw new InvalidOperationException("This context is read-only.");
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Need this since there is no DbSet<Customer> property
modelBuilder.Entity<Customer>();
}
}
関連する問題
- 1. jQuery読み取り専用スライダー - 方法?
- 2. 読み取り専用自動対(読み取り専用)プロパティ
- 3. CurrentCulture.DateTimeFormat.LongTimePattern読み取り専用
- 4. 読み取り専用アソシエーション
- 5. 読み取り専用テキストボックス
- 6. 読み取り専用プロパティ
- 7. Mockで読み取り専用プロパティをモックする方法は?
- 8. コレクションの読み取り専用コピーを返す方法
- 9. にjava.io.IOException:読み取り専用ファイルシステム
- 10. C#ファイルを読み取り専用で読み取り/書き込みする
- 11. java + sqlite:データベースを読み取り専用で開く方法は?
- 12. 読み取り専用(プログラムで入力)の設定方法
- 13. "読み取り専用"ファイルの作成方法?
- 14. 読み取り専用のテキストボックスで値を取得する方法
- 15. SignalRで読み取り専用のブロードキャストビューを取得する方法
- 16. 読み取り専用コンボボックスですか?
- 17. 読み取り専用データセットフィールドを
- 18. webapp2を - 読み取り専用ファイルシステムエラー
- 19. 読み取り専用メンバーデータをシリアライズ
- 20. 読み取り専用DBアクセスのトランザクション?
- 21. は、Delphi ClientDataSetの読み取り専用
- 22. ComboBoxの読み取り専用アイテム
- 23. SharePointデータシートビューの読み取り専用カスタムフィールド
- 24. C#WPFの読み取り専用チェックボックス
- 25. Googleのフォームは、読み取り専用
- 26. Hibernateの読み取り専用コレクション・マッピング
- 27. Subversionリポジトリの読み取り専用アクセス
- 28. XAML読み取り専用のComboBox
- 29. 読み取り専用リストのC#
- 30. yoctoの読み取り専用ファイルシステム
データベースへの書き込みアクセス権を持たないユーザーにコンテキストを与えます。 – vcsjones
ありがとうございます。私はSQLiteデータベースを使用しています。ちょうどそれが接続文字列オプションを介して読み取り専用モードで開くことができることがわかりました。 – Harindaka
それらに 'DbContext'を与えてはいけません。' IQueryable'かそれ以上を与えてください。 –