0

このクエリをLINQ/EFに変換したい

select a.ArticleId, COUNT(*) as total from Articles a
inner join MetaKeywords b on a.ArticleId = b.ArticleId 
where b.MetaKeyword in ('_catalog', '_register')
group by a.ArticleId
having COUNT(*) >= 2

多くのオプションを試しましたが、結果は期待どおりではありませんでした。

上記のクエリ 2 は、子テーブルから検索するキーワードの数です。

4

2 に答える 2

2

これを試して:

var lst= new string[]{"_catalog","_register"};

var qry = (from a in db.Articles 
          join b MetaKeywords on a.ArticleId equals b.ArticleId
          where lst.Contains(b.MetaKeyword)
          group a by a.ArticleId into g
          where g.Count() >= 2
          select new {ArticleId = g.Key, Total = g.Count()} );

は実際のクエリのlstで宣言されていることに注意してください。

于 2013-11-12T12:52:50.823 に答える