【问题标题】:SQL to IQueryable<T>SQL 到 IQueryable<T>
【发布时间】:2017-02-22 04:30:27
【问题描述】:

我有 SQL 文本查询。我不想用linq,会很复杂的linq。

如何从我的 SQL 字符串中获取 IQueryable 表达式,我可以在其他 linq 查询中使用它? 我想得到这样的东西:

public class ElementCount
{
   public int ElementID { get; set; }
   public int ElementCount { get; set; }
}

string sql = "<element count query>";

IQueryable<ElementCount> elementsCount = GetExpression(sql);

dbContext.Elements.Join(elementsCount ,element=>element.ID,elementCount=>elementCount.ElementID,

... 等等或其他 linq 查询

【问题讨论】:

  • 我认为SqlQuery 可能会达到您的目的。我不知道是否可以从原始 sql 中获取 IQueryable,但 SqlQuery 在枚举之前不会执行您的查询。如果您要寻找的是能够调用 LINQ 方法,那么您将能够,因为它们也有 IEnumerable 覆盖。
  • 我试过了。这不起作用。 SqlQuery 返回 DbRawSqlQuery
  • 您究竟为什么需要IQueryable
  • 不完全是。我想获得可以在其他 linq to sql 查询中使用的表达式

标签: c# entity-framework linq linq-to-sql iqueryable


【解决方案1】:

您的查询是否必须在 C# 中定义?

因为如果没有,您始终可以将其转换为数据库中的视图或存储过程,并将其作为 IQueryable 映射到您的 DbContext。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 2013-09-03
    • 2021-05-15
    • 1970-01-01
    • 2011-07-09
    • 2018-12-26
    相关资源
    最近更新 更多