2012-02-27 12 views
0

レコードを選択するために既存のwcfサービスを呼び出しています.Wcfを介してレコードが引き出されます。一度完了するとDBのレコードを更新する必要があります。ここでwcfサービスを使用してSQLテーブルを更新します。

は、方法は以下

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サービスを呼び出す午前でWCFサービスとコントローラは、コード内の以下の

サービスのコードの下に

public void UpdateProgram(ProgramData prg) 
{ 
    ServiceController.UpdateProgram(prg); 
} 

を詳述していますサービスコントローラー

内部の静的な無効UpdateProgram(はProgramDataのPRG) {

IProgramDAO prgDAO = DataAccessObjectFactory.GetProgramDAO(); 
    prgDAO.Update(prg); 


} 

私は私の話テーブルのstatus列を持っている私は、配布機能が行われたら、更新する必要があります。

あなたのWCFサービスへのUpdateメソッドを追加し、それを呼び出して、新しいデータで、DBのレコードを更新する必要があるだろうアドバンス

答えて

1

内の任意のヘルプplease.Thanks。

Upate

あなたのコメントを考えると、あなたはこのような何かを行うことができるはず:

for each (StoryProgram sp in joined) 
{ 
    Distribute(sp.Story, sp.Program);    

    // Make any changes you need to sp.Program 

    proxy.UpdateProgram(sp.Program); 
} 
+0

そのすでにます。public void UpdateProgram(はProgramDataのPRG) { ServiceController.UpdateProgramのように私のサービスで(prg); } – Usher

+0

Andrewに感謝します。 – Usher

関連する問題