C# 使用MVC3创建和使用WCF
我有一个MVC3项目是空的。我没有添加控制器或任何视图。我在MVC项目中添加的唯一内容是Model->Employee.csC# 使用MVC3创建和使用WCF,c#,wcf,asp.net-mvc-3,model-view-controller,c#-4.0,C#,Wcf,Asp.net Mvc 3,Model View Controller,C# 4.0,我有一个MVC3项目是空的。我没有添加控制器或任何视图。我在MVC项目中添加的唯一内容是Model->Employee.cs namespace EmployeeHost { public class Service1 : IService1 { public string GetData(int value) { return string.Format("You entered: {0}", value);
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.
}
}
}
我在这个类中有以下属性:
[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服务添加此员工的记录。我在同一个解决方案中创建了另一个项目,名为: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)添加一条记录。我的下一个过程是什么?更简单的方法是: 周转基金:
AddEmployee
调用插入EmployeeHost.Employee
所需的任何EF代码Model.Employee
转换为EmployeeHost.Employee
,使最后一个操作调用WCF同样,正如我在评论中所说,这在IMHO中没有多大意义,除非WCF是一个远程服务,部署在与web应用程序不同的服务器上。只是一个想法,但是WCF层和MVC应用程序会部署在同一个生产服务器上吗?因为如果他们愿意,您不需要同时使用WCF和MVC:只需a)创建一个标准模型/业务/存储库类来处理EF调用,从而避免创建WCF服务,或者b)使用WCF REST和JSON,并直接从客户端调用WCF,通过javascript代码。我需要通过WCF添加。我不能像这样添加我的服务:公共类Service1:IService1,DbContext@Raj为DbContext创建一个不同的类,WCF服务不应该这样使用。。。很抱歉,我将尝试查找有关EF的更多信息,我以为您已经知道如何处理此问题。:)你看了吗?您尝试使用MVC实现的基本上是代码优先的EF方法。请记住,您还有一层:不要让控制器动作调用EF实体,而是让它调用WCF,WCF调用EF实体……谢谢。我来看看。