1

我无法编译此代码。我是 MVC/Stackoverflow/programming 的新手,并试图按照教程进行操作。此外,我尝试查找一些东西并看到一些具有 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

将扩展方法更改为 use ,这是和IEnumerable<T>共享的通用基本类型:DbSet<T>List<T>

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