2012-11-14 34 views
1

我無法獲取此代碼進行編譯。我是新來的MVC/Stackoverflow /編程,並試圖遵循教程。此外,我試着查找一些東西,並看到一些Nullable值的選項,但沒有多少運氣。MVC3中的參數無效

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(系統。 Collections.Generic.IList,INT)」有一些無效參數

回答

1

更改您的擴展方法使用IEnumerable<T>,雙方DbSet<T>List<T>有着共同的基本類型:

public static IEnumerable<RestaurantReview> FindTheLatest(
      this IEnumerable<RestaurantReview> reviews, int numberOfReviews) 
+0

的感謝!希望他們提到要改變這一點,但現在都很好 – mrshickadance