问题标签 [change-tracking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
version-control - 用于我们的数据处理的手动“版本跟踪器”
我们有一个数据库系统,可以将源文件中的数据处理成一些输出。
这个“过程”不断被更新、增强、清理,当然还有公司周围的一些人在执行。
跟踪谁更改了什么、何时以及为什么我们需要像 Bug 跟踪器这样的东西,但不完全是;更像是手动更新的版本跟踪器。类似于 CHANGES 文件的东西,但更强大,例如基于 Web、可搜索、多用户等。我认为我们不能使用诸如 Mantis 之类的错误跟踪器,因为它是错误驱动的,例如,您首先必须有一个错误,在该错误下所有是分类的。我只想始终记录更改,无论是否存在错误。
谁能告诉我可以尝试哪些软件?
c# - 重新连接实体时,实体框架不跟踪集合更改
我最近在 MVVM WPF 应用程序中使用了很多实体框架,但遇到了一些问题。为了显示数据,我的视图模型使用了一个短暂的 ObjectContext。这些视图模型将在长期运行的过程中使用,因此我更喜欢使用短期 ObjectContext 以免降低性能。
所以基本上这意味着我的实体在断开模式下被消耗。可以创建、查看、更新和删除这些实体。使用断开连接模式将更改保存回数据库没有问题。但是我发现了一个特殊情况,即没有保存更改,并且在调用SaveChanges()
方法时没有出现错误。当我尝试更新具有集合属性的实体时会发生这种情况。实体的标量属性可以毫无问题地保留,但集合的更改不会反映到数据库,就像它无法在重新连接时跟踪这些更改一样。
这是我更改实体名称然后将对象添加到其报告集合的示例代码。之后SaveChanges()
,只有客户端名称已反映在数据库中。
那么是我做错了什么还是 EF 在重新附加实体时根本无法跟踪这种变化?
excel - 如何使 Excel 成为手动输入的强大关系数据源?
我正在使用 Excel 将数据类型存储为将手动输入的数据的关系数据库(请参阅我的其他问题:https ://stackoverflow.com/questions/9416263/possible-solutions-for-simple-data-persistence -and-manual-entry )
然而,到目前为止,我最大的问题是使关系更容易(从手动输入的角度来看)。到目前为止,我使用增量ID引用其他表,但是当您查看这样的外键时,用户不知道Object#42是什么,用户必须去寻找其他表中的#42为了知道它是什么。
让我举个例子,假设我们只有两张表和一张Cities和Country之间的一对多关系。
问题是我使用人工 ID 键来建立关系,但它没有任何意义,并且在添加城市时,我必须在另一个选项卡中检查所引用国家/地区的 ID。
有什么方法可以使用动态组合框来选择国家/地区,该组合框使用其他表中的数据?如果是这样,它是否可以显示国家名称,但输入 ID(因为这就是建立关系的方式)。
我是否必须将主键更改为国家名称并在必要时删除 ID 字段?因为有些表是多对多关系的结果,是由多个外键定义的,所以除了组合外键或人工ID之外,它们没有唯一值。
我希望我足够清楚,我必须承认我是 Excel 新手。
sql-server-2008 - 如何在单个查询中使用更改跟踪从 SQL Server 数据库中获取所有更改(或避免与数据库交谈)?
我知道可以使用更改跟踪对 SQL Server 2008 中的单个表进行更改。但是,我无法找到一种可接受的方式来在单个查询中查询整个数据库中的所有更改。
这可能吗?
您对编写一些动态 SQL 并使用 exec 完成此操作有何想法?你有什么例子可以指点我吗?
在 SQL Server 2008 中监视特定列/行数据更改是否有任何其他替代方法,这比编写和维护触发器需要更少的工作?我们的数据库有超过 1500 个表,这不是一个选项。
谢谢
java - 是否有对象更改跟踪/版本控制 Java API?
我知道至少有两个字节码增强器在运行时修改“对象模型”以允许透明地执行事务。其中一个是我每天在工作中使用的 Versant VOD 的一部分,另一个是 Terracotta 的一部分。可能还有很多其他的,例如在 ORM 中,但 Versant 在我的公司负责处理。
我的问题是,是否有这样一个可以独立使用的开源 API,独立于它所设计的产品?你可以说一个“可破解”的 API。它应该只跟踪更改,而不是读取访问,这会显着减慢代码速度。换句话说,它不应该需要显式的读/写锁定。这需要访问所有执行更改的类,而不仅仅是数据模型,或者需要在内存中保留某种形式的“先前版本”以进行比较。
我要解决的问题是我在(NoSQL)数据库中“序列化”了“大”(32K 到 256K)对象图。它们是长期存在的,必须定期重新序列化以获取更改的“历史”。但是它们的序列化相当昂贵,而且大多数更改都是很小的。
我每次都可以完全序列化它们并在流上运行二进制差异,但这听起来非常占用 CPU。更好的解决方案是修改模型上的写操作以对更改进行协议的 API,以便在存储初始“图像”之后,只需要存储协议。
我发现了一些关于 Apache Commons Beanutils 来比较对象的问题,但这对于就地更改没有用;我需要在每个“业务交易”之间对模型进行完整的克隆。
重申一下,我正在寻找一个“内存中”API,在同一个 JVM 中,它不涉及任何外部服务器应用程序。如果在 Win、Mac 和 Linux 上可用,涉及本机代码的 API 是可以的。API 目前不必独立打包;它只需要可以从“父项目”中提取它以形成一个独立的 API(父项目许可证必须允许这样做)。
我的对象图将涉及许多大型数组,因此需要有效地支持。
这些更改不仅用于审计,而且可以重放或撤消。更准确地说,使用反序列化的初始图和更改列表,我应该得到一个相同的结束图。此外,从结束图开始,应该可以通过反向应用更改返回到初始图。这使用完全相同的功能,但除了新值之外,还需要更改协议来保留旧值。
API 许可应与商业用途兼容。
[编辑] 到目前为止,我没有得到有用的答案,而且我想要的似乎也不存在。这让我只有一个选择:让它发生。当我有一个有效的实现时,我会在此处发布一个链接作为答案,因为这是我项目的下一步,没有它我无法继续前进。
[编辑] 我偶然发现了这个有点相关的问题:是否有一个 Java 库可以“区分”两个对象?
entity-framework - DbContext ChangeTracker 关系问题
假设我们有Customers
和CustomerCategories
与 nn 的关系 DbContext/ObjectContext。我也想保持AuditLog
表中的关系状态。在常规情况下,我可以通过以下代码达到此目的:
ChangeTracker
通过以下代码获取关系的状态:
然后通过以下代码找到两个相关实体的键:
除非新添加的相关 Customer 或相关 CustomerCategories 导致上述代码返回 null,否则一切正常。所以我找不到相关实体。
反正有没有正确找到相关实体?
wpf - 首先在代码中使用 ObservableCollection 跟踪 DbContext 的变化
我ObservableCollection<T>
用来将一些数据绑定到某个视图。在编辑数据库现有数据时,我可以通过Savechanges()
在我的视图模型中仅调用一个方法来保存数据编辑,也可以将新项目添加到集合中并且我可以编辑它们,但该SaveChanges()
方法不会向数据库插入额外的行。
我不知道将哪些实体传递给视图模型。T 是多个实体的合并类,所以我必须这样做。在构造函数中:
获取新项目的代码:
其中collection 是ObservableCollection<T>
并且CurrentItem
是当前正在编辑的项目。
编辑:
不context.ChangeTracker.Entries
识别新对象。
我有一个复杂的类型(比如 T),它是一些连接查询的结果,我不知道 T 是从哪些实体创建的,所以我无法获取实体 => 我不能说出我是什么类型的实体的上下文想补充。
所以我必须强制更改跟踪器从复杂类型创建新对象,这是某些连接查询的结果。
我正在使用 EF4.3.1
有什么建议么?
谢谢你。
c# - 实体框架中更改跟踪的工作原理
给定以下代码,EF/DbContext 如何知道对客户对象所做的更改:
谢谢
sql-server-2008-r2 - SQL Server 更改跟踪:如何手动应用更改?
我有一个为所有表(大约 200 个表)打开更改跟踪的数据库。
如何告诉 SQL Server 我要应用已跟踪的更改?
关闭然后打开更改跟踪的选项不合适 - 它花费了太多时间。
java - 使用hibernate anvers时如何创建自定义字段
我正在使用 spring 3.1、hibernate 4 开始一个新项目,并且需要跟踪应用程序上的任何活动。活动跟踪示例who changed what?
from what to what?
,at which time?
我已经阅读了有关 hibernate anvers 的介绍性教程。对我来说,似乎更多的是数据历史而不是活动跟踪,除非我根本没有得到它。
有没有办法将自定义字段添加到该 *_aud 表以插入更多用户定义的表。像date_created
, last_modified
, created_by
,updated_by
有自己的databefore
和dataafter
有点字段。所以基本上我想添加createdby
,updatedby
到 anvers 创建的表
有没有办法做到这一点。如果是,请指出我正确的资源。
谢谢阅读 。