WCF WebHttp サービスで POCO を返そうとしています。私はEntityFramework 4.1を使用しており、DbContext Generatorを使用してThe entity is createdエンティティを生成しています。
すべてがEFでうまく機能します。データベースにクエリを実行し、エンティティを操作できます。問題は私の WebHttp サービスから来ています。これらのエンティティのリストを返そうとすると、エラー 324 (空の応答) が返され、単一のエンティティ オブジェクトを返そうとすると、WCF エラー - "Request Error" が返されます。サービスのヘルプ ページは問題なく表示され、サンプルの応答も問題ありません。
サービスの戻り値の型をリストと文字列に変更して、エンティティの名のみを返すことでサービスをテストしました。これはうまくいきます。
私は ( 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;
}
}
}