使用wcf服务更新sql表

时间:2012-02-27 04:48:50

标签: c# wcf

调用现有的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);


}

我的故事表中有状态列,我必须在分配功能完成后更新。

请帮助。谢谢你提前

1 个答案:

答案 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);  
}