c# - 使用 LINQ-to-SQL 返回已筛选子对象的对象

标签 c# asp.net-mvc linq-to-sql

我有一个与子 Members 表关联的 MembershipGroups 表。成员表有一个状态列,可以设置为“事件”或“非事件”。

我想选择所有成员(member)组并仅选择其活跃成员(member)

举个例子,

成员(member)组

ID----标题

1-----组 #1

2-----组#2

成员

MembershipGroupID-名称--状态

1-------------------------------------约翰----活跃

1-------------------------------------莎莉----不活动

1-------------------------------------大卫---不活跃

我正在尝试创建一个类似于以下内容的查询(当前不起作用):

var query = from mg in db.MembershipGroups
where mg.Members.Status = "Active"
select mg

此示例的结果应返回 ID#1 的 MembershipGroup,仅包含一个子成员实体

如何使用 LINQ-to-SQL 选择筛选子对象的父对象?如果我直接使用 T-SQL,那么这将是一个带有 where 子句的简单联接,但使用 LINQ-to-SQL 似乎要困难得多。

最佳答案

编辑 - 更新答案以返回 MemberShipGroup 对象

var query = (from mg in db.MembershipGroups
            join m in db.Members.Where(mem => mem.Status == "Active")
            on mg.ID equals m.MembershipGroups into members
            select new
            {
               MembershipGroup = mg,
               Members = members
            }).AsEnumerable()
              .Select(m => new MembershipGroup  
                           {
                             ID = m.MembershipGroup.ID,
                             Title = m.MembershipGroup.Title,
                             Members = m.Members 
                           });

关于c# - 使用 LINQ-to-SQL 返回已筛选子对象的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232721/

相关文章:

c# - GameObject在Unity中消失后不出现

c# - Javascript 代码 mvc 4 上的 ViewBag

c# - System.Collections.Generic.List 的计数

database - 本地DB抛出字节数组截断到长度为8000异常

entity-framework - 我应该如何在 linq 中获得不同的记录?

c# - 无法整合Powershell和C#

c# - 如何加载 PNG 并导出到 TGA 在 C# 中保持 alpha?

c# - 如何在运行时填写资源字符串?

asp.net-mvc - 如何在 ASP.NET MVC 中实现单点登录 (ADFS)

.net - 使用 LinqToSQL 更新多对多关系