2012-02-09 7 views
2

私は空のMVC3プロジェクトを持っています。私はコントローラやビューを追加していません。MVC3を使用したWCFの作成と使用

[Display(Description="The admin systems group number")] 
    public string GroupNumber { get; set; } 


    [Display(Description = "The Tax ID for the group (No Dashes)")] 
    public string TaxId { get; set; } 

今私は、WCFサービスを介して、この従業員のレコードを追加したい:私はMVCプロジェクトに追加唯一の事は、私は、このクラスでこれらのプロパティはいる

モデル - > Employee.csです。私は名前の同じソリューション内の別のプロジェクトを作成しました:EmployeeHost

これらはIService1.csの私のServiceContractとのDataContractです:

namespace EmployeeHost 
{ 
    [ServiceContract] 
    public interface IService1 
    { 
     [OperationContract] 
     string GetData(int value); 

     [OperationContract] 
     Employee AddEmployee(Employee emp); 

     [OperationContract] 
     Employee UpdateEmployee(Employee emp); 
    } 

    [DataContract] 
    public class Employee 
    { 
     [DataMember] 
     public string GroupNumber { get; set; } 


     [DataMember] 
     public string TaxId { get; set; } 


    } 
} 

そして、これは私が私のインターフェイスに持っているものです。Service1.cs

namespace EmployeeHost 
{ 
    public class Service1 : IService1 
    { 
     public string GetData(int value) 
     { 
      return string.Format("You entered: {0}", value); 
     } 

     public void AddEmployee(Employee emp) 
     { 
      //Add something to DB for emp. 
     } 

     public void UpdateEmployee (Employee emp) 
     { 
      //Update something for employee emp. 
     } 
    } 
} 

これは私がこれまで行ってきたことです。今私はDBContext(EF)を使用してレコードを追加したいと思います。私の次のプロセスは何でしょうか?

+2

単なる考えですが、WCFレイヤーとMVCアプリケーションは同じプロダクションサーバーにデプロイされますか? WCFとMVCの両方を使用する必要はないため、標準モデル/ビジネス/リポジトリクラスを作成し、EF呼び出しを処理し、WCFサービスの作成を避けるか、またはWCFを使用するRESTとJSONを使用して、JavaScriptコードを使用してクライアントから直接WCFを呼び出します。 – rsenna

+0

私はWCFを介して追加する必要があります。 –

答えて

1

簡単な方法は、このようになります:

WCF:

  1. EFコードがEmployeeHost.Employeeを挿入するために必要なものは何でもAddEmployee電話をかけます。

MVC:

  1. フォームページを表示するためのビューを作成します。
  2. ビューを表示するためにコントローラにアクションを追加します。
  3. ビューに投稿されたデータを処理するアクションをコントローラに追加します。
  4. この最後の操作は、Model.EmployeeEmployeeHost.Employeeに変換してWCFを呼び出します。

私のコメントで言いましたように、それはあまり意味がありません--WCFがリモートサービスでない限り、Webアプリケーションとは別のサーバーに展開されます。

+0

私のサービスに次のように追加することはできません:public class Service1:IService1、DbContext –

+0

@RajはDbContextのための別個のクラスを作成します.WCFサービスはそのように使用すべきではありません...申し訳ありませんが、 EFについて、あなたはすでにそれに対処する方法を知っていたと思いました。 :) – rsenna

+1

あなたは[ScottGuのブログ](http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx)を見ましたか? ?あなたがしようとしているのは、基本的にMVCを使ったコードファーストEFアプローチです。コントローラのアクションをEFエンティティを呼び出す代わりに、WCFを呼び出すようにする代わりに、WCFがEFエンティティを呼び出すのではなく、1つ上のレイヤがあることを覚えておいてください。 – rsenna

関連する問題