Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ LEFT JOIN where子句不起作用_C#_Linq - Fatal编程技术网

C# LINQ LEFT JOIN where子句不起作用

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))

我需要返回所有事件的列表,以及用户可能拥有的任何事件RSVP。但是,不管我传递的用户名是什么,它都会返回每个rsvp。我的linq查询->

   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然后使用事件的导航属性