C# LINQ LEFT JOIN where子句不起作用
我需要返回所有事件的列表,以及用户可能拥有的任何事件RSVP。但是,不管我传递的用户名是什么,它都会返回每个rsvp。我的linq查询->C# LINQ LEFT JOIN where子句不起作用,c#,linq,C#,Linq,我需要返回所有事件的列表,以及用户可能拥有的任何事件RSVP。但是,不管我传递的用户名是什么,它都会返回每个rsvp。我的linq查询-> return (from events in this._context.Context.Events join rsvps in (this._context.Context.RSVPs .Where(o=> o.UserName == userName))
return (from events in this._context.Context.Events
join rsvps in (this._context.Context.RSVPs
.Where(o=> o.UserName == userName))
on events equals rsvps.Event into re
from rsvps in re.DefaultIfEmpty()
select events);
关系是Events.EventID=RSVPs.EventID按以下方式执行:
from e in _context.Context.Events
join r in _context.Context.RSVPs.Where(o => o.UserName == userName)
on e.EventID equals r.EventID into g
select new {
Event = e,
Rsvps = g
};
return (from events in this._context.Context.Events
join rsvps in this._context.Context.RSVPs
on events.EventIDequals equals rsvps.EventID into re
from c in re.DefaultIfEmpty()
where c.UserName == userName
select new {events,rsvps});
如果您只想在适当的位置过滤事件的RSVPs属性,那么我想您可能可以使用
var events = _context.Context.Events;
foreach(var event in events)
{
// Assuming the property is named RSVPs
event.RSVPs = event.RSVPs.Where(o => o.UserName.Equals(userName));
}
return events;
<>我不认为它是整洁的。这里似乎有些错误。具体地,事件的代码部分>代码等于RSVPS。事件< /代码>可能需要重写。哪个字段将事件表与RSVPs表相关联?RSVPs.EventID=事件。EventID@user1106741将events.EventID等于rsvps.EventID的
写入re
我不想创建匿名type@user1106741然后使用事件的导航属性