1

このコードをコンパイルするのに問題があります。私は MVC/Stackoverflow/プログラミングが初めてで、チュートリアルに従おうとしています。また、いくつか調べてみたところ、Nullable 値を持ついくつかのオプションが見つかりましたが、あまり運がありませんでした。

public class ReviewsController : Controller
{
    OdeToFoodDB _db = new OdeToFoodDB();
    //
    // GET: /Reviews/

    //default action
    public ActionResult Index()
    {
        var model = _db.Reviews.FindTheLatest(3);
        return View(model);
    }

FindTheLatest の定義は次のとおりです。

public static IEnumerable<RestaurantReview> FindTheLatest(this IList<RestaurantReview>        
reviews, int numberOfReviews)
    {
        return reviews.OrderByDescending(r => r.Created)
                      .Take(numberOfReviews);
   } 

必要に応じて、OdeToFood の定義もここに示します。

namespace OdeToFood.Models
{
public class OdeToFoodDB : DbContext
{
    public DbSet<Restaurant> Restaurants { get; set; }
    public DbSet<RestaurantReview> Reviews { get; set; }
}
}

「System.Data.Entity.DbSet」には「FindTheLatest」の定義が含まれておらず、最適な拡張メソッドのオーバーロード「OdeToFood.Queries.RestaurantReviewQueries.FindTheLatest(System.Collections.Generic.IList, int)」というエラーが表示されます。 ' 無効な引数があります

4

1 に答える 1

1

と の両方でIEnumerable<T>共有される共通の基本型であるを使用するように拡張メソッドを変更します。DbSet<T>List<T>

public static IEnumerable<RestaurantReview> FindTheLatest(
           this IEnumerable<RestaurantReview> reviews, int numberOfReviews)
于 2012-11-14T18:16:08.803 に答える