调用现有的wcf服务来选择记录,一旦记录被拉到wcf,我就会做我的逻辑(有点上传),一旦完成,我必须更新数据库中的记录。
以下是调用wcf服务的方式
GatewayService.ServiceClient proxy = new ServiceClient("IService");
SearchCriteria criteria = new SearchCriteria();
criteria.UserRoles = new string[]{"*"};
var stories = proxy.GetStoryItemsByCriteria(criteria);
var programs = proxy.GetPrograms();
var readyToDistribute = from story in stories
where story.Submitted
&& story.Status == "Open"
select story;
var joined = from story in readyToDistribute
join program in programs on story.ProgramId equals program.Id
select new StoryProgram(story, program);
foreach (StoryProgram sp in joined)
{
Distribute(sp.Story, sp.Program);
//update the status here in DB
}
以下是WCF服务和控制器详细信息
服务中的代码
public void UpdateProgram(ProgramData prg)
{
ServiceController.UpdateProgram(prg);
}
位于服务控制器中的代码
内部静态void UpdateProgram(ProgramData prg) {
IProgramDAO prgDAO = DataAccessObjectFactory.GetProgramDAO();
prgDAO.Update(prg);
}
我的故事表中有状态列,我必须在分配功能完成后更新。
请帮助。谢谢你提前
答案 0 :(得分:1)
您需要向WCF服务添加Update方法,并使用新数据调用该方法来更新数据库记录。
<强> Upate 强>
鉴于您的评论,您应该能够做到这样的事情:
for each (StoryProgram sp in joined)
{
Distribute(sp.Story, sp.Program);
// Make any changes you need to sp.Program
proxy.UpdateProgram(sp.Program);
}