List<Product>
jquery/ajax 呼び出しを使用して Entity Frameworkから取得しようとしています。これがajaxリクエストです。
$.ajax({
type: "POST",
url: "searchService.asmx/search",
data: "{'lookup':'itemName'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (products) {
// Just printing the result for now.
console.log(products);
}
});
Web サービスの検索メソッドは次のように実装されています。
[WebMethod]
public List<Product> search(string lookup)
{
using (eCommerceDBEntities context = new eCommerceDBEntities())
{
List<Product> pr = context.Products.Where(i => i.ProductName.Contains(lookup)).ToList();
return pr;
}
}
何らかの理由で、コンソール ログに 500 (内部サーバー エラー) が記録されます。
驚いたことに、次のコードが機能します。
[WebMethod]
public List<Product> search(string lookup)
{
using (eCommerceDBEntities context = new eCommerceDBEntities())
{
List<Product> pr = context.Products.Where(i => i.ProductName.Contains(lookup)).ToList();
return new List<Product> {new Product(){
ProductName="abc", ProductPrice=123},
new Product(){
ProductName ="xyz", ProductPrice=321
}
};
}
}
上記のハードコーディングされList<Product>
たものは素敵なオブジェクトを返しますが、データベースからクエリしたものはそうではありません。ハードコードされているか、フォーム DB にクエリされているかに関係なく、同じことだと思います。
私はこのアプローチを初めて試みているので、ここでひどく間違ったことをしている可能性があります。DBからデータを取得するにはどうすればよいですか?