.NET利用委托实现动态查询

   今天在整理代码的时候发现这个。通过灵活利用委托实现动态(条件)查询。

   直接上代码:

int articleId = 119;
var firstArticle = new ArticleDac().GetArticles(
    articleDbSet =>
    articleDbSet.AsQueryable().FirstOrDefault(x => x.id == articleId)
);

或者也可以这样
var firstArticle = new ArticleDac().GetArticles(
    articleDbSet =>
        {
            var query = (IQueryable<Article>) articleDbSet;
            query = query.Where(x => x.id==articleId);
            return query.OrderBy(x=>x.id).FirstOrDefault();
         }
);


public class ArticleDac {
   ...
   public Article GetArticles(Func<IDbSet<Article>, Article> func)
   {
      using(var db = xx) {
         return func(db.Articles);
      }  
   }
   ...
}
原文地址:https://www.cnblogs.com/feichexia/p/NET_DelegateDynamicQuery.html