当前位置: 首页 > 知识库问答 >
问题:

LINQ如何在一对多联接中指定select特定列

傅增
2023-03-14

我有一个LINQ查询的情况。它有两个连接(一对多),但它会带回连接表中的所有列。我不确定如何创建LINQ查询,以便只从连接的表中返回几个字段。

var data = from mc in ctx.MembershipChapters
           where mc.PartitionKey == controllerStateManager.PartitionKey && mc.MembershipId == membershipId
           join prd in ctx.Products on mc.ProductId 
           equals prd.Id into prods
           from prd in prods.DefaultIfEmpty()

           join oli in ctx.OrderLineItems on mc.OrderLineItemId equals oli.OrderLineItemId into olis
           from oli in olis.DefaultIfEmpty()
           select new
           {
             MembershipName = mc.Membership.Name,
             Products = prods.Select(p => new { 
ProductName = p.Name, ProductId = p.Id }),

OrderLineItems = olis.Select(o => new { OrderLineItemName = o.Description, OrderLineItemId = o.OrderLineItemId })
};
controllerStateManager.Data = data.ToList();

这不管用。。。我得到一个错误:“o”不在范围内。

基本上输出应该如下:

会员资格

我是LINQ的新手,我已经为此奋斗了太久。

共有1个答案

曾嘉福
2023-03-14

这是一个有点难读,但如果域链接正确,那么我想你只是想结束这样的查询:

from ol in ctx.OrderLines where
    ol.MembershipChapter.PartitionKey == controllerStateManager.PartitionKey
    select new {ol.Whatever, ol.Product.Whatever};
 类似资料:
  • 其目的是从联接的表(多对多)中选择列。 我遇到的问题是从联接的多对多表中选择两列。 我使用的是SpringBoot2.3和Spring data JPA。 我有这个数据模型,我想要获取的是蓝色装箱的字段

  • 我非常喜欢在Python中使用docstring来指定项目超出一定大小时的类型参数。 我很难找到用于指定参数是特定对象列表的标准,例如,在Haskell类型中,我会使用[String]或[a]。 当前标准(可由PyCharm编辑器识别): 我更喜欢什么: 选择1 选择2 我想这不是一个很好的例子——更相关的用例是列表中的对象必须是特定类型的。 更好的例子 所以,除了我饿了这一事实之外,这个例子说明

  • 问题内容: 我有一张桌子: 现在,我想使列的 用户,电子邮件,地址 唯一(在一起)。 如何在MySql中执行此操作? 当然,这个例子仅仅是……一个例子。因此,请不要担心语义。 问题答案:

  • 问题内容: 我想将某些类型为ParentClass的字段作为json字符串存储到我的数据库中。我不想使用Serializable接口和DataType.SERIALIZABLE导致它与序列化类的完整类名相关联。 所以我正在使用以下代码: 持久性类的一种: 这是我遇到的两个问题: 我没有得到如何指定从对象到字符串的自定义转换的信息。似乎ORMLite调用Object.toString()以获得对象的

  • 问题内容: 我有两个类A和B。许多B可以与一个A关联,因此从B到A是多对一的关系。我已经将这种关系映射为: A没有映射到B。记住这一点,我们打算在删除与A关联的B时将其删除。如果我可以在B中的多对一关联中定义inverse =“ true”,但hibernate则不允许这样做,这是可能的。 有人能帮忙吗?我们不想为此在A中写任何东西。 问题答案: hibernate仅沿着定义的关联进行级联。如果A

  • 问题内容: 进行联接时(内部,左外部,右外部或其他),如何指定表中的哪些列联接到原始表中? 考虑以下示例: 这将从用户中选择FirstName,但从Provider中选择所有内容。如何指定结果集中应包括提供商的哪些部分? 问题答案: 这将只包括 与最终结果集: