【发布时间】:2011-06-29 19:35:57
【问题描述】:
所以我在我的 SL 应用程序中以动态和编程方式为不同屏幕设置单独的数据上下文。我这样做是因为需要在一个屏幕上显示来自不同数据库表的数据。
我的挑战是:在查询个人信息和近亲信息(不同的表格)后,我需要将屏幕上所做的所有更新提交到相应的表格中。
我编写了一个自定义查询,通过自我加载 (LINQ) 获取数据,但是在我已经设置了屏幕的数据上下文之后,我该如何提交所做的更改?
这里是查询代码
public PersonalInfoModel GetPersonalInfo(string email)
{
var PersonalInfo = (from p in DataContext.OFFLINEAPPLICANTs
where p.EMAIL_ADDRESS == email
select new PersonalInfoModel
{
AppEmail = p.EMAIL_ADDRESS,
FirstName = p.FIRSTNAME,
LastName = p.LASTNAME,
MiddleName = p.MIDDLENAME,
Denomination = p.RELIGIOUSAFF,
DateOfBirth = p.DOB,
AppliedDate = p.CREATEDDATE.Value,
Gender = p.GENDER,
TrnOrSsn = p.SSN_TRN,
Nis = p.NIS,
NationalCountry = p.Country.Country1,
NokEmail = p.NEXT_OF_KINs.Where(q => q.email_address == p.EMAIL_ADDRESS)
.Select(q => q.email).FirstOrDefault(),
NokFax = p.NEXT_OF_KINs.Where(q => q.email_address == p.EMAIL_ADDRESS)
.Select(q => q.fax).FirstOrDefault(),
NokFirstName = p.NEXT_OF_KINs.Where(q => q.email_address == p.EMAIL_ADDRESS)
.Select(q => q.first_name).FirstOrDefault(),
NokLastName = p.NEXT_OF_KINs.Where(q => q.email_address == p.EMAIL_ADDRESS)
.Select(q => q.last_name).FirstOrDefault(),
NokPhone1 = p.NEXT_OF_KINs.Where(q => q.email_address == p.EMAIL_ADDRESS)
.Select(q => q.tel1).FirstOrDefault(),
NokPhone2 = p.NEXT_OF_KINs.Where(q => q.email_address == p.EMAIL_ADDRESS)
.Select(q => q.tel2).FirstOrDefault(),
NokRelationship = p.NEXT_OF_KINs.Where(q => q.email_address == p.EMAIL_ADDRESS)
.Select(q => q.relationship_id).FirstOrDefault(),
}).FirstOrDefault();
return PersonalInfo;
}
从父 SL 控件加载数据后,我将视图的数据上下文设置为从该查询返回的数据。
我如何提交更改,或者如何提交?
顺便说一句,我正在使用 RIA 服务
【问题讨论】:
标签: silverlight linq ria datacontext