1

我正在尝试在 WCF WebHttp 服务中返回一个 POCO。我正在使用 EntityFramework 4.1 并生成实体是使用 DbContext 生成器创建的实体。

一切都适用于 EF。我可以查询数据库并使用实体。问题来自我的 WebHttp 服务。当我尝试返回这些实体的列表时,我收到错误 324(空响应),当我尝试返回单个实体对象时,我收到 WCF 错误 - “请求错误”。服务帮助页面看起来不错,示例响应也不错。

我通过仅返回将服务的返回类型更改为列表和字符串的实体的名字来测试服务。这工作正常。

我假设(看过关于 WCF WebHttp Service 的教程)不需要向实体添加 [Serialize()] 或其他属性。

我迷失了为什么服务不会返回实体。

感谢您的任何/所有帮助。抢

这是服务的代码...

[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class SearchService
{

    [WebGet(UriTemplate = "Students")]
    public List<coop_Students> GetStudents()
    {
        List<string> ret = new List<string>();

        CottageDataEntities db = new CottageDataEntities();
        var students = from s in db.coop_Students
                       where s.status == "enrolled"
                       orderby s.lastname, s.firstname
                       select s;
        return students.ToList();

    }

    [WebGet(UriTemplate = "Echo/{text}")]
    public string Echo(string text)
    {
        return "Hello " + text;
    }

    [WebGet(UriTemplate = "Students/{studentID}")]
    public coop_Students GetStudent(string studentID)
    {
        using (CottageDataEntities db = new CottageDataEntities())
        {
            int id = int.Parse(studentID);
            var student = db.coop_Students.FirstOrDefault(s => s.studentID == id);
            return student;
        }
    }
}
4

0 回答 0