【发布时间】:2015-12-25 13:05:53
【问题描述】:
目的:
在“Reservations”表中,一行表示已预订的资源。 行可以共享一个“预订 ID”。因此,如果您预订了一些食物和一个房间,那将是两行共享相同的预订 ID。
现在使用 lambda 表达式。如果这些行之一有一个特殊的布尔集'让我们称之为externBoolean',如果这是真的。我想获取该行和具有相同预订 ID 的其他行。 然后返回一个列表,其中包含此布尔值中所有为 true 的行以及所有兄弟行。
基本上是这样的:
select t2.*
from Reservations t1
join Reservations t2
on t1.ReservationId = t2.ReservationId
where t1.externBoolean = 1
但使用 lambda 表达式
答案:在以下建议的帮助下,我最终得到了这个
它包含的比问题多一点,但它有效
var model1 = db.Pronestor_Internservice.Where(x => DbFunctions.TruncateTime
(x.booking_start_time) >= startDate && DbFunctions.TruncateTime
(x.booking_end_time) <= endDate && x.reservation_name.Contains(search_text)
&& x.resource_category_id == 61)
.Join(db.Pronestor_Internservice, x => x.reservation_id, x =>
x.reservation_id, (x, y) => y).ToList
【问题讨论】:
-
你能先试一试,然后我们在需要的地方提供帮助吗?
-
我已经拍摄了 30 分钟。我对 lamdba 不太擅长,我一直在谷歌上搜索所有类似的东西“加入同一张桌子”“自引用表格”我可以似乎找不到我要找的东西。
-
加入同一个表与加入两个不同的表没有什么不同。只需使用两次
context.MyTable,而不是使用context.Table1和context.Table2。
标签: c# .net entity-framework linq lambda