我正在尝试在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;
}
}
}