代码之家  ›  专栏  ›  技术社区  ›  Vaccano

模拟iqueryable的提供者

  •  4
  • Vaccano  · 技术社区  · 15 年前

    我正在和 Moles 模拟System.Data.Linq.Table。

    我知道它的构造很好,但当我使用它时,它需要iqueryable。 供应商 也被嘲笑。

    我只想使用普通的linq-to对象。知道会是什么吗?

    以下是我可以使用的语法:

    MTable<User> userTable = new System.Data.Linq.Moles.MTable<User>();
    userTable.Bind(new List<User> { UserObjectHelper.TestUser() });
    
    // this is the line that needs help
    MolesDelegates.Func<IQueryProvider> provider = //Insert provider here!
                                                                 ^
    userTable.ProviderSystemLinqIQueryableget = provider         |
                                                                 |
                                                                 | 
    what can I put here? ----------------------------------------+
    
    2 回复  |  直到 14 年前
        1
  •  7
  •   Johannes Rudolph    15 年前

    最简单的是 List<T> 可以用作 IQueryable<T> 通过 .AsQueryable() .

    MolesDelegates.Func<IQueryProvider> provider = () => userLinqList.AsQueryable().Provider;
    

    这就是我用来模拟linq2sql的内存数据库。简单而优雅。

        2
  •  0
  •   Peli    14 年前

    简单的解决方案是将list.asqueryable()绑定到表。IQueryable方法将自动重新路由到列表。