1

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からデータを取得するにはどうすればよいですか?

4

2 に答える 2