Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DbSet的扩展_C#_Asp.net_Winforms_Entity Framework - Fatal编程技术网

C# DbSet的扩展

C# DbSet的扩展,c#,asp.net,winforms,entity-framework,C#,Asp.net,Winforms,Entity Framework,什么是DbSet的扩展?我想添加方法“FindTheLatest”。这是我的代码: 这是我的密码 public static List FindTheLatest(this DbSet<Review> reviews, int nums) { return reviews.OrderByDescending(r => r.Created).Take(nums).ToList(); } 很抱歉信息太差。首先,列表是一种通用类型。另一方面,DbSet不是任何特定

什么是DbSet的扩展?我想添加方法“FindTheLatest”。这是我的代码: 这是我的密码

public static List FindTheLatest(this DbSet<Review> reviews, int nums) { return reviews.OrderByDescending(r => r.Created).Take(nums).ToList(); } 很抱歉信息太差。

首先,列表是一种通用类型。另一方面,DbSet不是任何特定类型的集合-您可能希望DbSet用于某些适当的t。您的意思可能是:

public static List<Review> FindTheLatest(this DbSet<Review> reviews, int nums)
{
    return reviews.OrderByDescending(r => r.Created).Take(nums).ToList();
}
或:


您可以使用泛型实现扩展方法以接受任何类型:

public static class DbSetExtensions
{
    public static IQueryable<T> FindTheLast<T,TResult>(this IQueryable<T> t, Expression<Func<T, TResult>> expression, int nums) where T : class 
    {
      return t.OrderByDescending(expression).Take(nums);
    }
}  

它不起作用,永远不能很好地描述问题所在。你有例外吗?或者意外的结果?很抱歉,我是这个论坛的新手,我的英语又差又差:@SeyedMortezaMousavi:没有更多的信息,我看不出我还能帮上什么忙。你是那个寻求帮助的人——由你提供所有相关信息。请阅读我在视频培训中使用的以下代码:public static IEnumerable find thelatest this IQueryable reviews,int nums{return reviews.orderbydegendinger=>r.Created.Takenums.ToList;}但是,它对我也不起作用:.@SeyedMortezaMousavi如果返回IEnumerable,为什么要调用ToList?什么对我不起作用意味着什么?它对你来说是太绿了,还是太热了?@SeyedMortezaMousavi:你已经三次说它不起作用了,但是尽管被问了好几次更多的信息,你没有说什么不起作用。你不明白我们不能帮你,除非你告诉我们这是怎么回事吗?@Amim:正如我之前建议的,你应该问一个新问题。您的要求与此问题的要求不同。
    OdeToFoodDb _db = new OdeToFoodDb();
    public PartialViewResult LatestReview()
    {
        System.Threading.Thread.Sleep(1500);
        //this is where i get error
        var review = _db.Reviews.FindTheLatest(1);
        //************************************
        return PartialView("_Review", review);
    }
public static List<Review> FindTheLatest(this DbSet<Review> reviews, int nums)
{
    return reviews.OrderByDescending(r => r.Created).Take(nums).ToList();
}
public static List<Review> FindTheLatest(this DbSet reviews, int nums)
{
    return reviews.Cast<Review>()
                  .OrderByDescending(r => r.Created)
                  .Take(nums)
                  .ToList();
}
public static class DbSetExtensions
{
    public static IQueryable<T> FindTheLast<T,TResult>(this IQueryable<T> t, Expression<Func<T, TResult>> expression, int nums) where T : class 
    {
      return t.OrderByDescending(expression).Take(nums);
    }
}  
dbContext.Entity.FindTheLast(x => x.Property,2);