使用.NET RIA Data Services删除Silverlight 3中的数据

时间:2009-08-18 21:49:39

标签: entity-framework silverlight-3.0 wcf-ria-services

我们正在尝试使用RIA服务。我似乎无法弄清楚如何删除记录。这是我正在尝试使用的代码。

   SomeDomainContext _SomeDomainContext = (SomeDomainContext)(productDataSource.DomainContext);
    Product luckyProduct = (Product)(TheDataGrid.SelectedItem);

    _SomeDomainContext.Products.Remove(luckyProduct);

    productDataSource.SubmitChanges();

从Entity部分中删除对象可以正常工作,但它似乎对DB没有任何作用。我是否使用了我应该使用的对象,还是有不同的保存方式?

2 个答案:

答案 0 :(得分:1)

错误系统有点挑剔。尝试这个o得到错误,如果有一个,这将给你一个想法。我的问题是在对象可能出现之前首先需要删除其他表。例如:在删除故障单之前删除了任务。

System.Windows.Ria.Data.SubmitOperation op = productDataSource.SubmitChanges();
op.Completed += new EventHandler(op_Completed);

void TicketsLoaded_Completed(object sender, EventArgs e) {
   System.Windows.Ria.Data.SubmitOperation op = (System.Windows.Ria.Data.SubmitOperation)sender;
   if (op.Error != null) {
      ErrorWindow view = new ErrorWindow(op.Error);
      view.Show();
   }
}

答案 1 :(得分:1)

在上面的代码片段中,我建议使用callback参数而不是事件处理程序。

productsDataSource.SubmitChanges(delegate(SubmitOperation operation) {
    if (operation.HasError) {
        MessageBox.Show(operation.Error.Message);
    }
}, null);

回调模型是为Load / SubmitChanges的调用者设计的,而事件是为其他获取LoadOperation / SubmitOperation引用的代码而设计的。

希望有帮助...