如何在 LINQ-to-SQL 中编写此交叉应用查询?

2024-01-06

我有以下表格:

create table TableA (
    Id int primary key identity,
    Key int not null
)

create table TableB (
    Id int primary key identity,
    TableA_Id int not null foreign key references TableA(Id),
    Value varchar(80) not null
)

我想使用 lambda 表示法在 LINQ-to-SQL 中编写以下查询:

select TableA.Key, b.Value
from TableA
cross apply (
    select top 10 TableB.Value
    from TableB
    where TableA.Id = TableB.TableA_Id
    order by TableB.Value
) b
where TableA.Key between 0 and 999

我该怎么做?


这应该可以解决问题

var query = from a in context.TableA
            from b in context.TableB
                             .Where(x => x.TableA_Id == a.Id)
                             .OrderBy(x => x.Value)
                             .Take(10)
            where a.Key >= 0 && a.Key <= 999
            select new
            {
              a.Key,
              b.Value,
            };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 LINQ-to-SQL 中编写此交叉应用查询? 的相关文章

  • 使用 LINQ 迭代类属性

    有一个 ParsedTemplate 类 它有超过 300 个属性 类型为 Details 和 BlockDetails parsedTemplate 对象将由函数填充 填充这个对象后 我需要一个 LINQ 或其他方式 来查找是否有任何属性
  • Linq lambda表达式多对多表选择

    我有三个表 其中两个是多对多关系 Picture 这是中间mm表中的数据 Edit 到这里 我得到正确的 4 行返回 但它们都是相同的结果 我知道我需要返回 4 行 但有不同的结果 return this mediaBugEntityDB
  • Linq 选择与另一个表中的 ID 相等的项目

    我不确定这怎么可能 但我有两个表 我想通过表 1 的值从表 2 中获取值 表 1 有一个名为 rank 的外键 它是int 表 2 有一个名为 name 的值 它是string 现在表 1 的 排名 与表 2 的 ID 相关 所以当我说 v
  • Linq to SQL DataContext 的多个/单个实例

    我有一个项目 其中有许多不同的类查询和修改一组公共表中的数据 我已经设置了一个 dbml 文件 它为我们提供了 DataContext 类 我的问题是 DataContext 的单个实例是否应该由所有对象使用 或者多个实例是否可以安全使用
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • linq 无法对“Table(req)”执行创建、更新或删除操作,因为它没有主键

    当表没有主键时 如何在表中添加行 正如您的问题标题所示 LINQ to SQL 无法在没有主键的表上执行创建 更新或删除操作 这是不可能的 所以 你可能需要使用DataContext ExecuteCommand http msdn mic
  • 连接两个不同长度的列表

    我正在使用 LINQ List
  • 使用左连接获得不适当的输出

    我正在尝试获取变体列表 并且对于每个变体都获取所有subvariants list无论子变体属于何处 特别的Test say 100 这是示例数据 Id TestId SourceSubVariantId TargetSubVariantI
  • SingleOrDefault异常处理

    我有一个示例代码 它调用 SingleOrDefault 方法 3 次 并在任何序列具有多个匹配元素时记录异常 如果我想检查这段代码的哪一部分抛出异常 问题就开始了 是否可以从此异常中获取一些有用的信息 例如谓词参数或集合类型以进行更详细的
  • 删除大量记录需要很长时间

    我有一个包含约 60 000 行的数据库表 在 SQL Server 2012 Express 上运行 我使用以下代码来清除旧行 Deleting CPU measurements older than oldestAllowedTime
  • 我应该如何获取 IEnumerable 的长度? [复制]

    这个问题在这里已经有答案了 我正在编写一些代码 然后去获取 IEnumerable 的长度 当我写的时候myEnumerable Count 令我惊讶的是 它没有编译 看完之后IEnumerable Count 和 Length 之间的区别
  • linq 中使用字符串数组 c# 的 'orderby'

    假设我有一个这样的方法定义 public CustomerOrderData GetCustomerOrderData string CustomerIDs var query from a in db Customer join b in
  • 计算另一个表达式中的 C# 表达式

    我想在另一个表达式中使用一个表达式 Expression
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c
  • LINQ -Where 表达式返回新实例还是对对象实例的引用

    对于某些人来说 这可能是一个基本问题 但它影响了我设计程序的方式 我有一个 A 类型的集合 IEnumerable a myCollection 我根据两个不同的标准过滤我的收藏 IEnumerable a subCollection1 m
  • 我们可以使用 Skip()、Take() 和 OrderBy() 控制 LINQ 表达式顺序吗

    我正在使用 LINQ to Entities 来显示分页结果 但我在组合方面遇到了问题Skip Take and OrderBy calls 一切正常 除了OrderBy 分配得太晚了 它在结果集被削减后执行Skip and Take 因此
  • 在数据表中按日期时间对字符串列进行排序

    我正在尝试排序DataTable on a string列依据DateTime 由于各种原因 该列必须保留为string数据类型 我知道我可以将数据复制到另一个表中 将该列转换为DateTime列 对其进行排序并将其复制回来 但我想知道是否
  • 存储库模式和 Linq to sql

    我正在尝试使用角色表 用户表和具有用户 ID 角色 ID 的外部参照表来实现用户身份验证和授权 为了实现通用存储库来更新角色 插入角色 添加用户 将用户添加到角色 更新用户 更新用户角色 验证用户 添加用户会话进行审核等 我是否需要为每个存
  • 从平面列表创建层次结构

    我必须从平面列表构建第 n 级分层列表 我尝试使用这个答案中的解决方案 https stackoverflow com a 25532561 https stackoverflow com a 25532561但我没能得到正确的结果 这是我

随机推荐