gpt4 book ai didi

wcf-ria-services - WCF Ria 服务 ChangeSet.GetOriginal() : How does it work?

转载 作者:行者123 更新时间:2023-12-04 15:37:26 26 4
gpt4 key购买 nike

我有一个相当简单的问题,我似乎无法找到答案。我有一个带有 Ria 服务的 Silverlight 应用程序。在 DomainService 类中,我有一个如下所示的更新方法:

public void UpdateConversationState(ConversationState currentConversationState)
{
var original = ChangeSet.GetOriginal(currentConversationState);
if (original != null)
ObjectContext.ConversationStatesRepository.AttachAsModified(currentConversationState, original);
else
ObjectContext.ConversationStatesRepository.Attach(currentConversationState);
currentConversationState.UpdDat = DateTime.Now;
if(original.Name != currentConversationState.Name)
//Do something extra
}

问题是 Name 属性始终为空。事实上,除了 Id 之外的每个字段都有默认值。我尝试搜索 GetOriginal 方法的工作原理,但找不到任何帮助。似乎它试图根据从客户端发送回服务器的更改在服务器上重建原始对象。

或者也许有人知道在更新期间检查对象的某个属性是否已更改的更好方法?我当然可以将它与数据库中的值进行比较,但似乎我应该避免对数据库进行这种额外的调用。

再次非常感谢任何帮助:-)

编辑:
刚刚发现了 RoundTripOriginalAttribute。这似乎可以解决问题。顺便说一句,我是唯一一个认为可以更好地记录 RIA 的人吗?

最佳答案

好吧,我也一直在寻找一种使用 EF4 跟踪实体更改的方法,经过一番谷歌搜索后,我发现您需要将“RoundTripOriginal”属性应用于要跟踪的实体的属性,因为 RIA(默认情况下) ) 不会将原始值发送回服务器。

我对此仍有一些担忧,我问了一些大师:

http://forums.silverlight.net/forums/t/218332.aspx

这对我有用,但我仍然认为这不是最好的方法。

希望这可以帮助。

关于wcf-ria-services - WCF Ria 服务 ChangeSet.GetOriginal() : How does it work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com