5

目標

ストアド プロシージャの結果をビューに表示したいと考えています。

問題

Entity Framework は、プロシージャを実行するメソッドを自動的にインポートしましたが、画面に表示されるはずの結果が得られません。

インポートされた関数は次のとおりです。

public virtual ObjectResult<getProductsListForHome_Result> getProductsListForHome(Nullable<int> inOffer, Nullable<int> categoryId)
{
    var inOfferParameter = inOffer.HasValue ?
        new ObjectParameter("inOffer", inOffer) :
        new ObjectParameter("inOffer", typeof(int));

    var categoryIdParameter = categoryId.HasValue ?
        new ObjectParameter("categoryId", categoryId) :
        new ObjectParameter("categoryId", typeof(int));

    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<getProductsListForHome_Result>("getProductsListForHome", inOfferParameter, categoryIdParameter);
}

私がすでに試したこと

ProductsController で:

//
// GET: /Products/
public ActionResult Index()
{
    ObjectResult<getProductsListForHome_Result> products = db.getProductsListForHome(1, 14);
    return View(products.ToList());
}

前のコードを使用すると、アクセスするhttp://myapp.com/Products/と次のメッセージが表示されます。

ディクショナリに渡されるモデル アイテムのタイプは「System.Collections.Generic.List 1[MyApp.Models.getProductsListForHome_Result]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable1[MyApp.Models.bm_products]」です。

これを解決するにはどうすればよいですか?

4

2 に答える 2