【发布时间】:2021-03-18 21:07:15
【问题描述】:
如何使用 LINQ 像下面的代码一样进行选择,或者我可以在 LINQ 上使用 QueryMultiple 吗?。我知道如何使用 LINQ 加入两个模型列表,但在这种情况下,我不知道如何使用 LINQ。
var result = con.QueryMultiple(@"select gtp.status, gtp.p_id, gtp.p_name, gtp.p_price,
gca.c_type, gbr.bedtype, gtp.currency from t_package as gtp, category as gca,
bedrooms as gbr where gtp.c_id = gca.c_id and gtp.bedroom = gbr.bed_id
and gtp.p_id = @id;
select gtd.tdates_id, gtd.dfrom, gtd.dto from traveldates as gtd
where gtd.p_id = @id;
select ginc.in_id, ginc.name from inclusion as ginc
where ginc.p_id = @id;
select con.con_id, con.name from tcondition as con
where con.p_id = @id;
select exc.ex_id, exc.name from exclusion as exc
where exc.p_id = @id;
select fli.fl_id, fli.name from flightdetails as fli
where fli.p_id = @id;
select iti.it_id, iti.name, iti.description, iti.bmeal, iti.lmeal, iti.dmeal from itinerary as iti
where iti.p_id = @id;
select img.img_id, img.slides from imagetable as img
where img.p_id = @id;
select vi.visa_id, vi.name from visareq as vi
where vi.p_id = @id;
select ph.ph_id, ph.ph_loc, ph.ph_phtel from photel as ph
where ph.p_id = @id;",
new { @id = id });
var aTp = result.ReadSingle<AdminTP>();
aTp.adminTDs = result.Read<AdminTD>().ToList();
aTp.adminINCs = result.Read<AdminINC>().ToList();
aTp.adminCONs = result.Read<AdminCON>().ToList();
aTp.adminEXCs = result.Read<AdminEXC>().ToList();
aTp.adminFLIs = result.Read<AdminFLI>().ToList();
aTp.adminITIs = result.Read<AdminITI>().ToList();
aTp.adminIMGs = result.Read<AdminIMG>().ToList();
aTp.adminVIs = result.Read<AdminVI>().ToList();
aTp.photels = result.Read<Photel>().ToList();
return Json(aTp, JsonRequestBehavior.AllowGet);
假设 t_package、traveldates 和其他表是模型列表而不是数据库表。
【问题讨论】:
-
您是否尝试使用 Entity Framework Core (EF Core)? LINQ 不会直接让您访问数据库。
-
是的 linq 无法直接访问数据库。这就是为什么让我们假设 db 表作为模型列表或 IList。例如 t_package().Where(x => x.is_id == id).Select(x=>x.Name),现在如何在 linq 中附加另一个选择?因为我对 LINQ 了解不多。
-
我使用 LINQ 加入了 2 个列表,如下所示 var listGroup = oTDP.GroupJoin(dates, otdp => otdp.p_id, d => d.p_id, (otdp, _dates) => new OTDPView { p_id = otdp.p_id, p_name = otdp.p_name, p_img = otdp.p_img, _Dates = _dates.ToList() });
-
我不知道是否可以使用类似于或类似于我上面的问题的 LINQ 加入多个子列表?
-
您在寻找联合(附加)功能还是加入功能?
标签: c# asp.net linq model-view-controller