如何使实体框架数据上下文只读

2023-12-03

我需要向第三方插件公开实体框架数据上下文。目的是允许这些插件仅获取数据,而不是让它们发出插入、更新或删除或任何其他数据库修改命令。因此,我怎样才能使数据上下文或实体只读。


除了与只读用户连接之外,您还可以对 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>();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使实体框架数据上下文只读 的相关文章

  • 在 C# 中使用通配符解析相对路径

    在 C 中 如果我有一个目录路径和一个带通配符的相对文件路径 例如 c foo bar and blah cpp 有没有一种简单的方法来获取绝对文件路径列表 例如 c foo blah a cpp c foo blah b cpp 背景 有
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • c#.NET 和 sprintf 语法

    这段代码如何翻译成 C 具体来说是如何sprintf用C 实现 string output The user s logged in string loggedIn is string loggedOut isn t if TheUser
  • “你好世界!!”在 .NET 4 中生成 3500 个页面错误

    我正在运行 Windows Vista 和 Visual Studio 2010 使用 NET 4 2 GB RAM 和大约 800 MB 可用空间 我创建了一个 Windows 窗体应用程序 但没有向其中添加任何代码 只需在发布模式下编译
  • 为什么当要求修剪“PRN.NUL”时,TrimStart 会更多地修剪字符?

    这是代码 namespace TrimTest class Program static void Main string args string ToTrim PRN NUL Console WriteLine ToTrim string
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 枚举扩展方法

    在vs2008中 是否可以编写适用于任何枚举的扩展方法 我知道您可以针对特定枚举编写扩展方法 但我希望能够使用单个扩展方法对每个枚举进行处理 这可能吗 是的 只需针对基础进行编码Enum类型 例如 public static void So
  • 使用.Net/C# 计算集合的频率分布

    是否有一种快速 简单的方法来使用 Linq 或其他方式计算 Net 集合的频率分布 例如 任意长的 List 包含许多重复项 遍历列表并计算 跟踪重复次数的巧妙方法是什么 查找列表中重复项的最简单方法是将其分组 如下所示 var dups
  • 如何在完成之前从 ReplaySubject 获取最新值

    我需要一种方法来获取添加到 ReplaySubject 中符合特定条件的最新项目 下面的示例代码完成了我需要它做的事情 但感觉不是正确的方法 static void Main string args var o new ReplaySubj
  • 抛出并保留堆栈跟踪不符合代码分析所描述的预期

    进行代码分析给了我项目 CA2200 CA2200 重新抛出以保留堆栈详细信息 func 重新抛出捕获的异常并将其显式指定为参数 请改用不带参数的 throw 以保留最初引发异常的堆栈位置 我已经实现了该建议 但无论如何我似乎都得到了相同的
  • 时间跨度格式[重复]

    这个问题在这里已经有答案了 当您将时间跨度声明为以下形式时 如何优雅地格式化时间跨度以表示 1 小时 10 分钟 TimeSpan t new TimeSpan 0 70 0 我当然知道你可以为此做一些简单的数学计算 但我有点希望 NET
  • 如何有效确保小数值至少有 N 位小数

    我想在进行算术运算之前有效地确保十进制值至少有 N 个位置 在下面的示例中 3 显然我可以格式化 0 000 然后解析 但它的效率相对较低 我正在寻找一种避免与字符串转换的解决方案 我尝试过以下解决方案 decimal d 1 23M d
  • 如何消除字符串中的所有换行符?

    我需要删除字符串中出现的所有换行符 来自数据库 我使用下面的代码来做到这一点 value Replace r n Replace n Replace r 我可以看到至少有一个角色的行为就像行尾一样幸存了下来 字符代码是8232 http w
  • Windows 7 任务栏:捕获缩略图

    是否可以从 Win7 任务栏捕获 实时 缩略图 我想在我的应用程序中显示 另一个窗口的 预览 但如何使用 NET 提取这些预览 Yes MSDN 杂志解释了如何 http msdn microsoft com en us magazine
  • 忽略 Entity Framework 6 中除部分属性外的所有属性

    我想使用实体框架在数据库中保留一些数据 我有一些更大的 POCO 但我只想存储一些属性 我知道我可以通过Fluent API通过使用Ignore 方法 但是是否也有可能不仅忽略已定义的属性 而且还忽略除已定义属性之外的所有属性 所以如果你有
  • EF4如何在多对多关系中公开联接表

    假设我有以下表格 Essence EssenceSet 和 Essence2EssenceSet 其中 Essence2EssenceSet 仅保存前 2 个表的 ID 以形成 M M 关系 在 EF 中 由于 Essence2Essenc
  • 如何计算最低系统要求?

    对于我用 Visual C 编写的应用程序 Testing 不 真的 这就是全部
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代

随机推荐

  • 带复选框的 Android ListView:如何捕获选中的项目?

    我必须做一个ListView with CheckBoxes然后当用户按下按钮时显示选中和未选中的项目 问题是我不知道该怎么做 我设法显示ListView与CheckBox用这个代码 package guestCheckBox com im
  • 启用选项 strict 时,Linq 查询对 DataGridViewRow 存在隐式转换错误

    我有一个 DataGridView 绑定到一个名为 BaseChange 的对象列表 BaseChange 对象由 4 个属性组成 更改类型 更改状态 变更说明 上次更改日期 datagridview 具有所有 4 个值以及第 5 个值的列
  • Adobe Air 4.0 原生扩展与 Google Play 服务

    这些天 我正在尝试将 AdMob 集成到我基于 Adob e Air 的 Android 应用程序中 谷歌播放服务 准备好 ane 文件后 在 Flash builder 4 6 中调试应用程序后出现以下错误 打包应用程序时发生错误 dx
  • 在 R 中获得多种分区方法的共识

    My data data cbind c 1 1 2 1 1 3 c 1 1 2 1 1 1 c 2 2 1 2 1 2 colnames data paste item 1 3 rownames data paste method 1 6
  • 插入后mysql返回索引

    我的方法是设置一个运行良好的插入命令 它将条目添加到我的数据库中 因为我想使用从第一次插入中获得的唯一索引在其他表中插入其他条目 我执行查询获取索引 然后重用它其他插入 虽然这很好用 我相信一定有更好的方法 有什么建议么 谢谢 对于自动增量
  • 灵活的锁定替代方案(选择性锁定)

    我需要解决具有不同内存位置的相同对象的情况 由于多线程 它发生在 REST 请求中 因此 作为解决方案的一部分 我实施了服务 我在这里分享最重要的部分 private Map
  • AngularJS错误.success不是一个函数

    我已经构建了一个工厂来处理控制器的函数 但不知何故控制器在其中一个函数上返回错误 错误 Auth getUser success 不是函数 http localhost 8080 app controllers mainCtrl js 10
  • 消失的对象 - Three.js CanvasRenderer

    我很困惑 我不明白为什么我的对象会随着画布渲染器消失 虽然它与 webGL 渲染器完全按照预期工作 但我需要在移动设备上显示它 因此无法访问 webGL 渲染器 我尝试过 overdraw true 但这似乎并没有使丢失的对象消失 http
  • 动画切换按钮

    我已经创建了动画切换 如果android checked true 即 它可以从 1 9 播放 但是如果android checked false 它卡在了drawable 10 但应该从10 20开始播放 从那时起它就完美了 但是当应用程
  • Swift 通用数组“不相同”错误

    我只是在浏览一些 Swift 的内容 这些内容在 Beta3 中显然已经过时了 func exchange
  • EF4.2 额外左外连接到同一个表

    我知道已经有一些关于此的问题 大多数与已解决的旧问题或多个表有关 我看到的任何其他 左外连接 问题都没有涵盖这个问题 我得到了INNER JOIN and LEFT OUTER JOIN在同一个查询中访问同一个表 表格概要 Users id
  • Android:捕获活动的返回

    我有一个关于开展新活动的问题 归根结底就是这样 我的视图上有 3 个选项卡 A contains gMap activity B camera activity C some random text fields 要求是应用程序以纵向模式运
  • 是否可以在 android gradle 中将 git 存储库声明为依赖项?

    我想使用 mavencentral 的库的主版本 是否可以在 android gradle 中将 git 存储库声明为依赖项 对我来说最好的方法是 https jitpack io 步骤 1 将 JitPack 存储库添加到存储库末尾的 b
  • OmniSharp.MSBuild.ProjectManager 无法在 Linux 上加载项目

    我正在我的 Manjaro Linux 笔记本上学习 C 我尝试安装 ms vscode csharp 扩展 但是在打开任何 NET Core 项目时 我收到以下错误消息 某些项目加载时遇到问题 请查看输出以了解更多信息 信息 我尝试设置
  • setuptools:包数据文件夹位置

    我使用 setuptools 来分发我的 python 包 现在我需要分发额外的数据文件 根据我从 setuptools 文档中收集的信息 我需要将数据文件放在包目录中 但是 我宁愿将数据文件放在根目录的子目录中 我想避免的 root sr
  • 如何防止点击页面按钮后 Django 表单被重置

    我有一个 Django 表单 它接受用户的输入值 然后使用这些值对表进行查询ResourceBase 最终返回过滤结果的列表 由于结果可能是一个很长的列表 我添加了带有 上一页 和 下一页 按钮的分页功能 我的问题是 当我单击 上一个 或
  • 使用 gsub 从 R 中的数据集中删除主题标签、超链接和 Twitter 句柄

    我已经搜索过 但一无所获 可能是因为我对 R 非常陌生 不理解 并且被吓倒 模式匹配和正则表达式替换的逻辑 语法是如何工作的 所以我希望有人可以帮助我使用 R 中删除主题标签所需的特定代码 例如 trump 删除超链接 例如pic twit
  • 如何执行浏览器内对比度拉伸/标准化?

    我的网页上有 jpeg 我想在没有浏览器插件的情况下对这些图像执行客户端均衡 对比度拉伸 我也接受直方图均衡的解决方案 我目前使用两个 CSS 过滤器组合的较差近似值 webkit filter contrast brightness 我希
  • 文件下载到 Cordova 中的 Android 下载文件夹

    这是代码 function downloadCL document addEventListener deviceready init false The directory to store data var store var asse
  • 如何使实体框架数据上下文只读

    我需要向第三方插件公开实体框架数据上下文 目的是允许这些插件仅获取数据 而不是让它们发出插入 更新或删除或任何其他数据库修改命令 因此 我怎样才能使数据上下文或实体只读 除了与只读用户连接之外 您还可以对 DbContext 执行一些其他操