我正在使用 Enity Framework 从我的数据库中获取数据。在 WCF 中,我的方法的返回类型为 List<EmployeeTable> 。但是我无法在 WCF 测试客户端中测试我的服务。

我是否需要编写我的自定义数据契约来返回获取的数据。

编辑:

我该如何处理这种情况:

var query = from c in customers
            join o in orders on c.ID equals o.ID
            select new { c.Name, o.Product };

最佳答案

将 DTO 与服务实体分开是一种很好的做法
您需要做的是创建一个服务员工类并实现从/到您的员工 DTO 的转换器方法。

然后让您的服务操作返回服务员工列表而不是 DTO 列表。

作为初学者:

public static Service.Employee ToServiceEntity(Data.Employee dataEmployee)
{
    Service.Employee result = new Service.Employee();
    result.FirstName = dataEmployee.FirstName;
    ...
    return result;
}

以及实现您的运营契约(Contract)的方法:
public List<Service.Employee> GetEmployees(...)
{
  IEnumerable<Data.Employee> dataEmployees = // Retrieve employees from data repository
  var serviceEmployees = dataEmployees.Select(dataEmployee => EntityConverter.ToServiceEntity(dataEmployee°);

  return serviceEmployees.ToList();
}

关于c# - 实体到 WCF 数据契约,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4476566/

10-15 19:11