【问题标题】:How does EF implement SingleOrDefaultEF 如何实现 SingleOrDefault
【发布时间】:2014-01-06 04:51:57
【问题描述】:

我读到LINQ to SQL 没有有效地实现 SingleOrDefault(查看 Damien 的评论)。 LINQ to EF 也是这样吗?

我想要的东西最多只能选择两条记录(因为两条记录已经违反了 Single 规则),如下所示:

Function SingleOrDefault(source As IQueryable(Of T)) As T
    Dim candidates = source.Take(2).ToList()

    If candidates.Count = 2 Then
       Throw
    ElseIf candidates.Count = 1 Then
       Return candidates(0)
    Else
       Return Nothing
    End If
End Function

【问题讨论】:

  • 你在问什么问题?
  • EF中Singleordefault就是这样实现的

标签: linq entity-framework linq-to-sql


【解决方案1】:

EF为singleordefault生成的SQL是:

 SELECT TOP 2 ....

如果返回 2 条记录,则会引发异常。数据库只有一趟。

您可以通过运行 SQL 分析器来检查它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多