Methods 名为方法更新的域服务不工作

Methods 名为方法更新的域服务不工作,methods,service,dns,named,Methods,Service,Dns,Named,我正在使用VS2010、Silverlight 4和WCF RIA v1 当我尝试在域服务中使用命名更新方法时,我遇到了一个奇怪的错误 这就是错误: “消息:Silverlight应用程序中未处理的错误*提交操作失败。值不能为null。*参数名称:System.ServiceModel.DomainServices.EntityFramework.ObjectContextensions处的原始值。” 在此域服务中发生错误 this.ObjectContext.Prospects.AttachA

我正在使用VS2010、Silverlight 4和WCF RIA v1

当我尝试在域服务中使用命名更新方法时,我遇到了一个奇怪的错误

这就是错误:

“消息:Silverlight应用程序中未处理的错误*提交操作失败。值不能为null。*参数名称:System.ServiceModel.DomainServices.EntityFramework.ObjectContextensions处的原始值。”

在此域服务中发生错误 this.ObjectContext.Prospects.AttachAsModified(p,this.ChangeSet.GetOriginal(p))

我已经阅读了WCF的变更文档,我认为我做的一切都是正确的

有人能帮我弄清楚发生了什么事吗

干杯

以下是代码说明:

客户

域服务方法
您需要将[RoundTripOriginal]属性添加到元数据中的一个非键的“Prospects”成员

<riaControls:DomainDataSource.DomainContext>
      <my:MarketingDomainContext />
 </riaControls:DomainDataSource.DomainContext>
<Grid x:Name="LayoutRoot" Background="White">
     <Grid DataContext="{Binding ElementName=comboBoxProspects, Path=SelectedItem}" 
            Name="gdProspects" Margin="10">
public partial class MainPage : UserControl
{

    MarketingDomainContext ctx;

    private void dsProspects_LoadedData(object sender, LoadedDataEventArgs e)
    {
          ctx = (MarketingDomainContext)dsProspects.DomainContext;
    }

    private void btnSubmit2_Click(object sender, RoutedEventArgs e)
    {
      //((Prospect)gdProspects.DataContext).CalculateProspectValue(
     //    int.Parse(tbNumber1.Text), int.Parse(tbNumber2.Text));
      var tempProsp = gdProspects.DataContext as Prospect;
      ctx.CalculateProspectValue(tempProsp, int.Parse(tbNumber1.Text), 
         int.Parse(tbNumber2.Text));
        ctx.SubmitChanges();
   }
[Update(UsingCustomMethod=true)]    
public void CalculateProspectValue(Prospect p, int a, int b)     
{
   p.Comments = "Value = " + a * b;
   // Error happens here
   this.ObjectContext.Prospects.AttachAsModified(p, this.ChangeSet.GetOriginal(p));

 }

 public void UpdateProspect(Prospect currentProspect)    
 {
  this.ObjectContext.Prospects.AttachAsModified(currentProspect,   this.ChangeSet.GetOriginal(currentProspect));

 }