WCF WebHttp服务使用来自EntityFramework 4.1的POCO - dbContext

时间:2011-09-20 21:50:50

标签: c# wcf entity-framework dbcontext webhttp

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

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

我通过仅返回将服务的返回类型更改为List和string的实体的名字来测试服务。这很好。

我假设(已查看tutorial on WCF WebHttp Service)无需向实体添加[Serialize()]或其他属性。

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

感谢您提供任何/全部帮助。 ROB

以下是服务的代码......

[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;
        }
    }
}

0 个答案:

没有答案