我用Linqer到SQL轉換到LINQ,但結果是不一樣的 我的SQL查詢:使用計數返回比SQL查詢不同的結果
Select ChuyenNganh.ChuyenNganhID,ChuyenNganh.TenChuyenNganh,SoLuong= count(BaiBao.ChuyenNganhID)
from BaiBao right join ChuyenNganh on ChuyenNganh.ChuyenNganhID = BaiBao.ChuyenNganhID
group by ChuyenNganh.ChuyenNganhID, ChuyenNganh.TenChuyenNganh
轉換到LINQ
var queryChuyenNganh = from t in myPhanLoaiTaiLieuDataContext.ChuyenNganhs
join t0 in myPhanLoaiTaiLieuDataContext.BaiBaos on new { ChuyenNganhID = t.ChuyenNganhID } equals new { ChuyenNganhID = Convert.ToInt32(t0.ChuyenNganhID) } into t0_join
from t0 in t0_join.DefaultIfEmpty()
group t by new
{
t.ChuyenNganhID,
t.TenChuyenNganh
} into g
select new
{
ChuyenNganhID = (System.Int32)g.Key.ChuyenNganhID,
g.Key.TenChuyenNganh,
SoLuong =(Int32)g.Count()
};
結果:
的LINQ
SQL
誰能幫我?
的't0_join.DefaultIfEmpty()'將是0 count行,因此返回一個默認值1 – Frogger
我想在你的sql查詢你是否正確地加入BaiBao與ChuyenNganh並且在你Linq你正確的加入ChuyenNganh與BaiBao。爲了正確或者左連接的順序問題,你正在計算基數(BaiBao.ChuyenNganhID) – Saadi