代码之家  ›  专栏  ›  技术社区  ›  Niels Bosma

将Linq2SQL与自定义SQL结合起来

  •  1
  • Niels Bosma  · 技术社区  · 14 年前

    比如:

    IQueryable<Client> query = Foo<Client>("SELECT * FROM Clients WHERE ...");
    
    query.Where(e => e.Active==true).Skip(10).Take(10); //etc.
    

    ExecuteQuery<T>(...).AsQueryable() ,但它无法加载所有记录。

    4 回复  |  直到 14 年前
        1
  •  2
  •   D'Arcy Rittich    14 年前

    你能把查询的这部分放到一个视图中吗?

    SELECT * FROM Clients...
    

    Where Skip/Take .

    var results = db.MyViews.Where(e => e.Active == true).Skip(10).Take(10);
    
        2
  •  1
  •   Mark Cidade    14 年前

    你呢 能够 实现这一点,但是您必须解析SQL文本并查找映射以获得正确的类型(例如,从 客户 Client ). 没有内置的自动生成 IQueryable 从SQL。

        3
  •  1
  •   ILya    14 年前

    从我的观点来看,最好的方法是为这种情况实现自己的包装器继承IQueryable。在GetEnumerator()中,可以实现逐行读取结果,也可以从自己的GetEnumerator()方法返回ExecuteQuery(…).GetEnumerator()。