2017-07-18 8 views
-1

3テーブルがあります。
Tbl_City、Tbl_GroupCities、Tbl_CtrCar。
私はこのLINQにSQLクエリやラムダ式は、C#でSQLクエリをC#でLINQまたはラムダ式に変換し、EFコアで使用します。

declare @fk_group uniqueidentifier 
SELECT @fk_group= FK_Group 
FROM dbo.Tbl_User 
WHERE UserName='meysam' 

SELECT dbo.Tbl_City.ID_City, dbo.Tbl_City.Name_City,COUNT(dbo.Tbl_CtrCar.Cur_year) 
FROM dbo.Tbl_City 
INNER JOIN dbo.Tbl_CtrCar ON dbo.Tbl_City.ID_City = dbo.Tbl_CtrCar.FK_City 
WHERE ID_City IN (SELECT FK_City 
        FROM dbo.Tbl_GroupCities 
        WHERE Active=1 AND [email protected]_group) 
GROUP BY ID_City , Name_City 
+2

を実行しますか?何が問題ですか? –

+0

私はこのクエリをラムダに変換します。私はこれを変換する方法が混乱しています。なぜなら、私は結合してグループ化して入れ子にしているからです。 –

+1

LINQに参加してグループ化する方法を探しましたか? –

答えて

2

を変換するには、見てみてくださいhereクエリであなたが持っている機能はまだ実装されていません。 GROUPBYと私はまた、副問い合わせが

SELECT * FROM TableName 

を行いますし、メモリには、新しいSQLクエリによって、あるいは行ごとにグループをやると思います。

この目的でRawSqlメソッドを使用する方がよい。

しかし、あなたは本当にLINQを学び、あなたのSQLは、この問題はdone.iあるLINQPad

0

を見てみ変換したい場合は、私の問題を発見し、私は2つの参加の理解を使用しないとLINQの

内でグループを使用します

私はあなたがしようとしたどのような解決のために、このLINQを使用して

var model = _TblUser.SingleOrDefault(x => x.UserName == type.UserName); 

     var q = _TblGroupCities.Where(x => x.IdGroup == model.FkGroup && x.Active == true); 
     tblCityViewModel = new List<MohasebKhodro.ViewModels.TblCityViewModel>(); 

     var sample2 = 
      (from x in _TblCity 
      join a in _TblGroupCities on x.IdCity equals a.FkCity 
      where a.Active == true && a.IdGroup == model.FkGroup 
      select new 
      { 
       x.IdCity, 
       x.NameCity 
      }).ToList(); 


     foreach (var item in sample2) 
     { 
      var er = _TblCtrCar.Where(x => x.FkCity == item.IdCity).Max(x => x.CurYear); 
      tblCityViewModel.Add(new MohasebKhodro.ViewModels.TblCityViewModel 
      { 
       IdCity = item.IdCity, 
       NameCity = item.NameCity, 
       MaxCurrentYear = Convert.ToString(er) 
      }); 
     } 
+0

どうすればこのLINQをラムダエクスプレッションにすることができますか? –

+0

ラムダ式のチョークです。何をもっと求めることができますか?ソリューションがLINQを使用していることを管理者または教師に証明したい場合は、成功しました。 –

関連する問題