【发布时间】: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