使用MVC3创建和使用WCF

时间:2012-02-09 17:52:35

标签: c# wcf asp.net-mvc-3 model-view-controller c#-4.0

我有一个空的MVC3项目。我没有添加控制器或任何视图。我在MVC项目中唯一添加的是模型 - > Employee.cs

我在这个课程中有这些属性:

    [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服务添加此Employee的记录。我在名为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)添加记录。我的下一个过程应该是什么?

1 个答案:

答案 0 :(得分:1)

更简单的方法是:

WCF:

  1. AddEmployee调用插入EmployeeHost.Employee所需的EF代码。
  2. MVC:

    1. 创建一个显示表单页面的视图。
    2. 在控制器上添加操作以显示视图。
    3. 在控制器上添加操作,以便从视图中处理发布的数据。
    4. 通过首先将Model.Employee转换为EmployeeHost.Employee,使最后一个操作调用WCF。
    5. 同样,正如我在评论中所说,除了WCF是一个远程服务,部署在与Web应用程序不同的服务器中之外,这对IMHO来说没有多大意义。