问题标签 [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.
.net - ChangeTracker Entity Framework 4.1 - 相关对象的原始值
我有一个我继承的基类,它与其他实体有两个零到多关系:
在 SaveChanges 期间查看使用 ChangeTracker 的实体时,我很难获得这些关系(RelatedWebObjects 和 RelatedTags)的原始值。我可以看到之前和之后的所有标量值,我可以看到新的关系,但我看不到旧的。我试过使用 Member 和 Collection 方法,但那些只显示当前值;不是旧的。我也不喜欢使用这些,因为它需要我知道导航属性的名称,这不够通用。
我可以找到关系正在改变的相关对象,但是这些相关对象中的值当然没有改变,所以这也没有任何帮助。
在使用 ChangeTracker 进行 SaveChanges 期间,我是否有一些干净的方法可以跟踪实体的先前关系?
以下是我正在处理的代码部分:
c# - EF 4.1 代码优先 - 确定哪些属性已更改
我正在使用 Entity Framework 4.1 Code First。是否有内置方法来获取自从数据库加载实体以来发生了哪些属性更改的列表?我知道代码首先检测到一个对象已更改,但有没有办法准确获取哪些属性已更改?
sql-server-2008 - 使用 SQL Server 2008 更改跟踪将 MS Sync Framework 2.0 升级到 2.1
我将 Sync Framework 2.0 与 SQL Server 2008 和 Sql Compact Server 3.5 SP 一起使用,并使用集成的 SQL Server 更改跟踪。
现在我想将 Sync Framework 升级到 2.1 版
帮助说有一个 2.0 兼容模式,并且 CE 数据库自动升级。当我连接到我上次与 2.0 版本同步的 CE 数据库时,我收到以下消息:
Microsoft.Synchronization.Data.DbNotProvisionedException The current operation could not be completed because the database is not provisioned for sync or you not have permissions to the sync configuration tables. Boolean NeedsUpgrade()
看起来 Sync Framework 尝试使用错误的更改跟踪机制升级数据库。但我无法找到一种方法来设置要使用的机制。
详细,w3wp,17,08/30/2011 11:54:25:720,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:722,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:726,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:728,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:729,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户;密码= * *
详细,w3wp,17,08/30/2011 11:54:25:737,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:757,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:770,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:810,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:834,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:846,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:851,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:862,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:883,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:894,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:925,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:931,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:937,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:947,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:952,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:961,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:966,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:975,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:985,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:25:990,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户
详细,w3wp,17,08/30/2011 11:54:26:000,连接到数据库:D:\Customer\Customer.WEB\Service\App_Data\1a074cdb-b03a-406a-8996-098811c375a2CustomerMobil.sdf
System.NullReferenceException 对象引用未设置为对象的实例。布尔 UpgradePublicTracking(System.String) 在 System.Data.SqlServerCe.SqlCeChangeTracking.UpgradePublicTracking(String connectionString)
在 Microsoft.Synchronization.Data.SqlServerCe.SqlCeClientSyncProvider.PerformUpgradeIfNecessary()
在 Microsoft.Synchronization.Data.SqlServerCe.SqlCeClientSyncProvider.BeginTransaction(SyncSession syncSession )
在 Microsoft.Synchronization.SyncAgent.DataSynchronize()
在 Microsoft.Synchronization.SyncAgent.Synchronize()
在 Customer.Sync.Mobile.MobilSync.SyncUp() 在 D:\Customer\Customer.Sync\Customer.Sync\Mobile\MobilSync .cs:泽勒 38。
在 D:\Customer\Customer.WEB\MobilSync\Sync.cs:Zeile 79 中的 Customer.WEB.Communication.Sync.DoSyncThread(Object syncParams)。
.net - 实体框架中的字段更改跟踪
有没有办法找出我的对象上更改了哪些字段。
示例问题:当更改某些日期字段并且更改正在保存自定义时,应将一些自定义逻辑应用于相关对象。
我之前尝试过这样做,context.SaveChanges();
但ObjectStateManager
没有给我所需的所有信息。
sql-server-2008 - SQL Server 2008 链接服务器和 CONTEXT_INFO
我正在尝试使用 SQL Server 2008 更改跟踪功能。启用该功能后,您可以使用该CHANGETABLE(...
功能查询 SQL Server 内部保存的更改跟踪历史记录,例如:
其中 SYS_CHANGE_CONTEXT 列记录CONTEXT_INFO()
会话值。此列对于审核谁更改了什么等很有用。
一些更改数据的语句由远程 SQL Server 使用四部分表示法执行,该远程 SQL Server 将主服务器作为链接服务器,例如:
我的问题是在执行查询的会话中在远程服务器上设置的 CONTEXT_INFO() 没有在我的主服务器更改跟踪中被拾取,即它看起来不像 CONTEXT_INFO 跨越分布式查询。这意味着以下内容不会导致 CONTEXT_INFO 记录在主服务器更改跟踪上。
有谁知道这是否是一个限制,或者是否有办法在分布式查询中持久/通信 CONTEXT_INFO?
谢谢
c# - c# - 比较两个字典以了解每个“添加”操作和每个“删除”操作
我有 2 个结构相似的字典
和
我一开始就创建了起源。它是初始状态的副本。例子 :
用户操作后,我将更改保留在 Changes 字典中。基本上,用户可以添加或删除一些链接到字符串的数字。所以我保留了这样的任何变化的所有痕迹:
示例:如果用户在字典中的“tata”中添加 1 更改 a 有“tata”有 1
如果用户在字典中的“toto”中添加 4 更改 a 有“toto”有 1,2,3,4
如果用户在字典中删除“titi”中的 1 更改 a 有“titi”有 2
我需要更改字典来了解用户何时返回原始状态,并进行简单的比较。
如果没有对字符串进行任何更改,则 Changes 字典没有该字符串的任何条目。
多次更改后,用户可以保存更改。所以现在我需要找到所有的添加和删除操作。
我的第一个想法是比较两个字典,看看添加操作和删除操作。但是如何?如果我比较相同字符串的列表,我可能知道区别,但我被困在这里。也许有更好的方法来做到这一点?有什么建议吗?
c# - STE ChangeTracker.OriginalValues 始终为空
我无法从我的 EF STE DTO 获取 OriginalValues。
难道我做错了什么?
谢谢
entity-framework - Entity Framework 4.1+ 多对多关系变更跟踪
如何检测 ICollection<> 属性的变化(多对多关系)?
change-tracking - 为什么我的 Track Changeset 视图中缺少变更集
我真的希望有人能够在这里帮助我们......
想象以下分支层次结构:
现在假设我在项目 1 中有变更集 1 和 2,在项目 2 中有变更集 3、4 和 5。
这两个项目都包含在 Release 1 中,因此我们将变更集 1 和 2 作为变更集 6 合并到 Dev 中,然后作为变更集 7 合并到 Main 中。然后我们将变更集 3、4 和 5 作为变更集 8 合并到 Dev 中,然后作为变更集合并到 Main变更集 9。然后我们将变更集 8 和 9 合并到版本 1 中,作为变更集 10。
然后,当我们查看 Release 1 的历史记录时,我们正确地只看到了变更集 10。到目前为止一切正常,我们可以验证来自两个项目分支的所有变更都已成功合并到 Release 1。
我们现在右键单击并跟踪变更集 10,并将模式切换到时间线,确保在分支选择窗口中选择了所有相关分支(即版本 1、项目 1 和项目 2 分支 - 中间分支自动包含在内)。
我们遇到的问题是,来自项目分支的源变更集间歇性地错过了跟踪。上面的例子代表了今天早上的合并,跟踪显示了除项目 1 分支中的变更集 1 和 2 之外的所有变更集。它显示变更集 6,其中变更集 1 和 2 被合并到 Dev,但不显示包含的变更集。
有没有人知道为什么会发生这种情况?以及如何解决?
干杯。
file - 监视球拍中的文件更改(如tail -f)
我想在 Racket 中实现类似“tail -f”的行为。也就是说,我想从文件中读取,当我读完时,能够制作类似 "blocking" 的东西(read-line file)
,当其他一些进程将一行附加到file时,它会返回。我尝试与同步,(read-line-evt file)
但是,如果我在文件的末尾,而不是阻塞直到其他数据可用,它会立即返回。有没有办法做到这一点?