Linq to SQL - 关闭代码中的 UpdateCheck

2024-03-12

我想关闭UpdateCheck所有成员的功能(除了他们的主键)。现在我按照下面的示例作为指导,但是我的表的 MetaDataMembers 仍然设置为Always.

http://www.the-lazy-coder.com/2013/04/set-updatecheck-to-never.html http://www.the-lazy-coder.com/2013/04/set-updatecheck-to-never.html

上面的代码片段只是让您更改属性,但是它似乎永远不会被拾取,因为我可以在代码运行时调试代码,并且我看到所有属性都被设置,所以我假设属性更改不会更改底层对象。

现在,如果我要改变方法并直接从行类型获取元数据成员,我注意到他们有UpdateCheck属性,但只是吸气剂。那么有没有办法(如果需要的话通过反射)在设置后覆盖这个属性?即使在查看反编译源之后,它也是一个抽象类,我找不到任何可供参考的实现。

我正在使用 SQLMetal 生成上下文文件,因此没有可用的设计器修补,尽管有些人会说我应该运行一些文本编辑宏来解析和更改属性,但这一切听起来太冗长了should只需能够进入内存中的对象并告诉它忽略之前告诉它的任何内容。

所以!有没有办法覆盖实体中的属性?我尝试在创建对象之后和即将进行更新之前在两个构造函数中的该链接中运行原始代码,但是似乎没有任何更改会坚持或至少传播到重要的地方,并且几乎没有有关如何以编程方式执行此操作的任何材料。


在互联网上搜索后,我发现没有很好的方法来做到这一点,尽管有我最初提到的链接,但它不起作用,因为它适用于部分正确的属性,但在上面的情况下,它们正在处理的属性不在内存中,只是装饰,无论如何,下面的代码似乎可以工作,但不太好:

public static void SetUpdateCheckStatus(this IDataContext dataContext, UpdateCheck updateCheckStatus)
        {
            var tables = dataContext.Mapping.GetTables();
            foreach (var table in tables)
            {
                var dataMembers = table.RowType.DataMembers;
                foreach (var dataMember in dataMembers)
                {
                    if (!dataMember.IsPrimaryKey)
                    {
                        var dataMemberType = dataMember.GetType();
                        if (dataMemberType.Name == "AttributedMetaDataMember")
                        {
                            var underlyingAttributeField = dataMember.GetType().GetField("attrColumn", BindingFlags.Instance | BindingFlags.NonPublic);
                            if (underlyingAttributeField != null)
                            {
                                var underlyingAttribute = underlyingAttributeField.GetValue(dataMember) as ColumnAttribute;
                                if (underlyingAttribute != null)
                                { underlyingAttribute.UpdateCheck = updateCheckStatus; }
                            }
                        }
                        else
                        {
                            var underlyingField = dataMember.Type.GetField("updateCheck", BindingFlags.Instance | BindingFlags.NonPublic);
                            if (underlyingField != null)
                            { underlyingField.SetValue(dataMember, updateCheckStatus); }
                        }
                    }
                }
            }
        }

IDataContext 只是我们出于模拟目的而放置在 DataContext 周围的包装器,因此请随意将其更改为 DataContext。它的编写非常具有防御性,因为这种方式会拉回许多不具有所有所需数据的成员,因此它必须将它们过滤掉,并且只对具有所有所需数据的成员起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linq to SQL - 关闭代码中的 UpdateCheck 的相关文章

  • 动态加载组件 - 设置和通信

    好吧 我有一个 WPF 应用程序 我们称之为Launcher exe 它加载并执行另一个 WPF 应用程序 我们称之为Loaded exe 动态地使用这样的东西 Byte assemblyData using BinaryReader re
  • 当属性值在 HTML5 中可以保持不带引号时

    HTML5 中什么时候属性值可以保持不带引号 HTML4 01 是一个 SGML 应用程序 因此 在 HTML4 中 如果值中使用的唯一字符是当前声明为名称字符的字符 字母数字字符 句号 则可以省略引号 好吧 来自 W3C 工作草案 201
  • Assembly.GetTypes() 返回类型的顺序是什么?

    如果我获得 AppDomain 中的类型列表 这些类型是否有固有的顺序 List
  • 如何使用反射确定属性类型?

    如何测试类型的属性以查看它是否是指定类型 编辑 我的目标是检查程序集以查看该程序集中的任何类型是否包含 MyType 或从 MyType 继承 的属性 这是我走过的路 AssemblyName n new AssemblyName n Co
  • 一般重写 Scala 案例类

    是否可以通用地替换案例类中的参数 更具体地说 假设我想要一个接收 查找 案例类和 替换 案例类 如语法规则的左侧和右侧 以及目标案例类的替代函数 并且该函数将返回将查找案例类的参数替换为替换案例类的新案例类 该函数还可以简单地采用一个案例类
  • 如何从 JtextPane 获取样式?

    我有一个带有格式化文本的 JtextPane 我需要复制完整的样式和属性 从此文本将其传输到另一个 JtextPane 有示例或代码片段吗 看看它是如何工作的 好的 这是我找到的代码 我做了一些更改 import java awt impo
  • 动态创建结构的List<>

    在 C 中 我想创建一个基于动态值类型的列表 例如 void Function1 TypeBuilder tb tb is a value type Type myType tb CreateType List
  • C# 反射和获取属性

    我有以下虚拟类结构 我试图找出如何从 PeopleList 中 People 类的每个实例获取属性 我知道如何从 People 的单个实例中获取属性 但我无法弄清楚如何从 PeopleList 中获取它 我确信这真的很简单 但有人能指出我正
  • 为什么 C# 中没有“fieldof”或“methodof”运算符? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 它们可以如下使用 FieldInfo field fieldof string Empty MethodInfo method1 methodo
  • 使用 LINQ to SQL 进行批量更新

    有没有办法使用 LINQ 对集合进行批量更新 目前如果我有一个List
  • AttributeError:“NoneType”对象没有属性“astype”

    我在复现ESRGAN相关程序时遇到了如下问题 libpng 错误 读取错误 Traceback most recent call last File sda ZTL B codes train py line 173 in
  • 使用(linq to sql)更新错误

    我有两个表 通过外键 CarrierID 绑定 Carrier CarrierID CarrierName CarrierID 1 CarrierName DHL CarrierID 2 CarrierName Fedex Vendor V
  • Scala 2.10,它对 JSON 库和案例类验证/创建的影响

    显然 在 Scala 2 10 中我们得到了改进的反射 这将如何影响 lift json jerkson sjson 和朋友 此外 我们能否期望在不久的将来 Scala 中会出现内置的 JSON 语言功能 如 Groovy 的出色 GSON
  • List、IList、IEnumerable、IQueryable、ICollection,哪个返回类型最灵活?

    我之前已经在这里看到过这个问题 但我不满意我理解的完整后果 问题是使用 linq to sql 返回的数据层应该使用什么返回类型以获得最大的灵活性和查询能力 这是我读过 发现的 IEnumerable 是有限的 只允许向前读操作 IEnum
  • .Net 中是否有一个框架属性可以隐藏成员以使其免受反射?

    是否有一个属性可以隐藏成员 特别是属性 typeof MyType GetProperties 在 net中 我正在寻找快速修复方法 即不创建自定义属性等 thanks No 反射允许人们看到一切 包括标记为私有的成员 最终反射使用与 CL
  • 编译器可以报告未知属性的错误吗?即使有范围?

    在N3291 7 6 1 3 5 属性语法和语义 decl attr grammar 关于如何属性是用我读过的源代码写的 使用一个属性范围令牌是有条件支持的 实现定义的行为 and For an 属性标记本国际标准中未指定 该行为是实现定义
  • LINQ to SQL 特性

    我遇到了 LINQ to SQL 的一些特殊情况 通过一个相对简单的查询 我想选择一些字段 但将日期字段格式化为字符串 我首先是这样实现的 var list dataContext MyLists Single x gt x ID myId
  • 使用反射获取通用 IDictionary 的值

    我有一个实现的实例IDictionary
  • Groovy - 在对象实例化期间忽略映射中的额外属性

    有没有办法让 groovy 在对象实例化期间忽略映射中的额外属性 例子 class Banana String name def params name someGuy age 13 new Banana params 在这个例子中 gro
  • C++ 插件的“最适合”动态类型匹配

    我有一个几乎所有东西都是插件的架构 该架构以图形用户界面为基础 其中每个插件都由一个 表面 即用户可以通过其与插件交互的 UI 控件 表示 这些表面也是插件 每当添加新插件时 瘦主机都会自动确定哪个可用表面与其最匹配的 UI 如何在 C 中

随机推荐

  • .htaccess 重写规则中的模式干扰

    在 htaccess 中定义重写规则时 我遇到了模式干扰问题 我试图重写的网站链接是 example com item work gt example com work example com item work tile x gt exa
  • 使用 ActiveAdmin 进行多步骤表单?

    是否可以使用 ActiveAdmin 创建多步骤表单 如果没有 是否可以在提交表单后添加另一个重定向到的页面 不是默认索引 显示或表单页面 我自己也一直在苦恼这个问题 我发现您可以使用 ActiveAdmin 文件中的集合操作添加自己的页面
  • Gwt 2.8-rc1 超级开发模式不适用于 IntelliJ IDEA 2016.2.5

    我的项目在超级开发模式下使用 GWT 2 7 和 2 8 beta1 正确启动 不幸的是 自 2 8 rc1 发布以来 它没有启动 看起来 GWT 项目依赖项配置不正确 IDE IntelliJ IDEA 2016 2 5 C Progra
  • 如何在 karma angularjs 中对 setInterval 进行单元测试

    app directive shuffleBlocks function timeout return link function sco ele att if itemCnt lt 1 return Trigger function fu
  • UITableViewCell 布局在重复使用单元格之前不会更新

    我有一个 UITableView 其中填充了自动调整大小的单元格 UITableView设置相当简单 tableView estimatedRowHeight 70 tableView rowHeight UITableViewAutoma
  • 将 angularjs 值传递给 PHP 变量

    我从 AngularJS 和 ngStorage 开始 我可以成功保存并显示数据 我像以前一样显示值 myobj session 我想将任何存储的值传递到 php 变量中 下面显示的是我的想象逻辑 我知道那是行不通的 我的问题是如何以正确的
  • 如何让 jest 使用 ES6 依赖项

    所以我有一个依赖包 我将其拉入我的 node modules 文件夹中 这个包中有一个像这样的导出 Object
  • PHP sleep() 导致 CPU 使用率高

    我正在运行一个大部分时间处于睡眠状态的 CLI 脚本 每隔 10 秒左右 脚本就会执行一些操作 问题是 脚本在睡眠时 CPU 使用率为 94 我设置的方法是 while 1 sleep 10 doStuff 虽然这按预期工作 但存在一个明显
  • 字符+字符=整数?为什么?

    为什么要加两个char在 C 中结果为int type 例如 当我这样做时 var pr R G B Y P the pr变量变成int类型 我希望它是一个string类型值为 RGBYP 为什么C 要这样设计呢 默认实现不是添加两个cha
  • 从Excel VBA的下拉列表中选择特定项目

    我正在为我的办公室设计一个仪表板 这一切都有效 但我想添加一个选项 而不是在下拉列表中搜索 250 多个项目 您还可以单击一个单元格 下拉列表将更改为该值 并且分配的宏将为该下拉列表运行 到目前为止 我不知道如何让 vba 从下拉列表中选择
  • 具有列表视图的 Android 小部件正在刷新具有丑陋的短“闪烁”效果的项目

    我想制作一个带有 ListView 的小部件 您可以在其中添加 listItems 来显示计数器计时器 以查看您有多少时间来处理某个事件 这是我第一次使用小部件 我不知道我的方法是好还是坏 到目前为止我得到了这个 AppWidgetProv
  • Javascript - 所有嵌套的 forEach 循环完成后的回调

    我确信这是一个相当简单的任务 但我现在无法全神贯注 我有一组嵌套的 forEach 循环 当所有循环运行完毕时 我需要一个回调 我愿意使用 async js 这就是我正在处理的 const scanFiles function accoun
  • 如何使用 BiWeekly 库和 Java Mail API 创建现有事件并发送更新?

    我在用着BiWeekly http sourceforge net projects biweekly 库来创建 VEVENT 然后使用以下命令发送它Java 邮件 API https java net projects javamail
  • 具有动态数量的并行消费者的 Kafka 工作队列

    我想用Kafka来 分工 我想将工作实例发布到某个主题 并运行由相同使用者组成的云来处理它们 当每个消费者完成其工作时 它将从该主题中提取下一个工作 每项工作只能由一个消费者处理一次 处理工作非常昂贵 因此我需要在许多机器上运行许多消费者才
  • New (std::nothrow) 与 try/catch 块中的 New

    学习后我做了一些研究new 不像malloc 我习惯了 分配失败时不会返回 NULL 并且发现有两种不同的方法来检查 new 是否成功 这两种方式是 try ptr new int 1024 catch std bad alloc exc
  • PayPal 自适应付款错误 您无权隐式执行此付款

    我有一个发送付款的简单应用程序 该应用程序在沙箱中运行良好 实时经典应用程序的应用程序 ID 已获得批准 显示为 自动批准 但当我输入实时凭据时 它返回错误 您无权隐式执行此付款 发送 XML 到端点https svcs paypal co
  • 在钩子 woocommerce_checkout_order_processed 中获取订单详细信息

    add action woocommerce checkout order processed send order fax function send order fax order id print r REQUEST die 我想在这
  • JavaScript 异步返回值/使用 jQuery 赋值[重复]

    这个问题在这里已经有答案了 我有以下 jQuery 函数 我正在尝试返回此处显示的 GUID 值alert 警报工作正常并且值已填充 但是我似乎无法将其分配给变量并返回其值 最终我需要访问其他函数中的GUID值等 我尝试过的所有内容都仅显示
  • 不可变对象是线程安全的,但为什么呢?

    举例来说 一个线程正在通过创建不可变类的对象来创建和填充不可变类的引用变量 而另一个线程在第一个线程完成并创建不可变类的另一个对象之前启动 那么不可变类的用法不是线程吗不安全 创建不可变对象还意味着所有字段都必须标记为final 如果引用了
  • Linq to SQL - 关闭代码中的 UpdateCheck

    我想关闭UpdateCheck所有成员的功能 除了他们的主键 现在我按照下面的示例作为指导 但是我的表的 MetaDataMembers 仍然设置为Always http www the lazy coder com 2013 04 set