私は非常に簡単なことをしようとしています。 データベースにlinqを使用して照会したいテーブルが2つあります。 本の表、およびGenreTypesの表このクエリの結果は私のWeb APIに送られます。私は、APIを構築するためにBooksChartクラスに保存したいグループ分けの結果Linqで結合とグループ化を使用する
public List<BooksChart> GetBooksChart()
{
var results = from b in _dbcontext.Books
join g in _dbcontext.GenreTypes
on b.GenreTypeId equals g.Id
group g by g.Name into n
select (z => new BooksChart
{
category_name = n.Key,
value = n.Count()
}).ToList();
return results;
}
public class BooksChart
{
public string category_name;
public int value;
}
「N」:ここでは
は、コードスニペットです。
このコードはコンパイルされていません。
以前は、BooksとGenreTypeに分かれたBooksの1つのテーブルのみを照会していました。
書籍た照会のための私の前の作業コード:
var results = _dbcontext
.Books
.GroupBy(x => x.GenreType)
.Select(z => new BooksPieChart
{
category_name = z.Key,
value = z.Count()
}).ToList();
return results;
EDIT
私はSQLで達成したいことは以下の通りです:
select count(*), g.Name
from books b, GenreTypes g
where b.GenreTypeId = g.Id
group by g.Name;
コンパイルしていませんか?コンパイルエラーとは何ですか?また、なぜそのテーブルのデータを使用していない場合は、テーブルを結合する?確かにそれはあなたが欲しいものですか? –
@GiladGreenがあなたに正しく答えてくれました。しかし、サイドノートに。 'Books'と' GenreTypes'の間のdbcontextに関係がないのはなぜですか?それは物事をはるかに簡単にする – Rabbi