0

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

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

    _SomeDomainContext.Products.Remove(luckyProduct);

    productDataSource.SubmitChanges();

从实体部分删除对象工作正常,但它似乎对数据库没有任何作用。我是在使用我应该使用的对象,还是有不同的保存方法?

4

2 回答 2

1

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

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

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

希望有帮助...

于 2009-08-25T18:19:25.593 回答
1

错误系统有点挑剔。试试这个,如果有错误,就会得到错误,这会给你一个想法。我的问题是在对象可能之前需要先删除其他表的依赖关系。例如:在删除工单之前删除的任务。

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();
   }
}
于 2009-08-20T16:06:23.540 回答