LINQ 中的案例和 IIF

本文关键字:IIF 案例 LINQ | 更新日期: 2023-09-27 18:34:06

我如何在ASP.Net LINQ中获得相同的结果,因为以下查询SQL是下面的

select *, case 
        when 
            gender = 1 then 'Male' else 'Female' end 
        as gen from info

在IIF中

select iif(gender = 1, 'Male', 'Female') as gen, * from info 

我尝试使用建议遵循,但抛出错误

InfoDataContext db = new InfoDataContext();
            var data = from y in db.infos
                       db.infos.Select(i => new info{info = i, i.gender == 1 ? "Male" : "Female"}).ToList()
                       select y;
            GridView1.DataSource = data;
            GridView1.DataBind();

还有一个是,第一个查询将新结果作为表中的最后一列返回,第二个查询作为表中的第一列返回。如何将gen列重新排列或替换为gender

LINQ 中的案例和 IIF

只需使用三元运算符:

var data = context.info.Select(i => new {info = i, gender = i.gender == 1 ? "Male" : "Female"}).ToList();

我已经完成了你的建议。

InfoDataContext db = new InfoDataContext();
            var dat = db.infos.Select(i => new {info = i,i.id, i.name, Gen= i.gender == true ? "Male" : "Female", i.city});
            GridView1.DataSource = dat;
            GridView1.DataBind();