【发布时间】:2010-05-02 20:19:20
【问题描述】:
我在 Silverlight 4 中有一些使用 WCF RIA RC2 域服务的简单表单。
我的所有表单似乎都运行良好,我使用了传统代码来进行精细控制和格式化。
我遇到的问题是在一个特定表单上,除非我更新其他字段之一,否则数据不会被更新。
这是我的代码。
void ConfirmSave_Closed(object sender, EventArgs e)
{
if ((bool)ConfirmSave.DialogResult)
{
_New = false;
tblEmailTemplate Selected = (tblEmailTemplate)lstEmailTemplates.SelectedItem;
Selected.Name = txtName.Text;
Selected.Description = txtDescription.Text;
Selected.Body = txtBody.Text;
Selected.ModifiedBy = Security.DomainUserName;
Selected.ModifiedOn = DateTime.Now;
Selected.Body = txtBody.Text;
DataStore.SubmitChanges();
Dialogs.ConfirmationDialog Added = new Dialogs.ConfirmationDialog(Selected.Name + " has been saved.", "Email Template Saved");
Added.Show();
lstEmailTemplates.ItemsSource = DataStore.tblEmailTemplates;
lstEmailTemplates.DisplayMemberPath = "Name";
}
}
如果我输入更改,可以说在每个字段、名称、描述、正文中附加一个“A” - 所有 3 个都会更新。
- 姓名A
- 描述A
- BodyA
但如果我不更改描述,Body 不会更新。
- 姓名AB
- 描述A
- BodyA(应该是 BodyAB)
如果我只对 Body 进行更改,它不会更新。 如果我只更改名称,它就会更新。
这是非常奇怪的行为。通过域服务跟踪代码,我看到更改的记录具有正确的更改 - 就旧记录而言,它只包含 ID,其他所有内容都为空,这可能是设计使然,但我没有花太多时间调试域服务层。
有什么想法吗?
【问题讨论】:
标签: wcf silverlight service ria