我们正在尝试使用RIA服务。我似乎无法弄清楚如何删除记录。这是我正在尝试使用的代码。
SomeDomainContext _SomeDomainContext = (SomeDomainContext)(productDataSource.DomainContext);
Product luckyProduct = (Product)(TheDataGrid.SelectedItem);
_SomeDomainContext.Products.Remove(luckyProduct);
productDataSource.SubmitChanges();
从Entity部分中删除对象可以正常工作,但它似乎对DB没有任何作用。我是否使用了我应该使用的对象,还是有不同的保存方式?
答案 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引用的代码而设计的。
希望有帮助...