我用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