5

我正在使用Moles并模拟 System.Data.Linq.Table。

我把它构建得很好,但是当我使用它时,它需要 IQueryable。提供者也将被嘲笑(摩尔)。

我只希望它使用普通的 Linq To Objects。知道那会是什么吗?

这是我可以使用的语法:

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? ----------------------------------------+
4

2 回答 2

7

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

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

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

于 2010-02-11T17:16:03.483 回答
0

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

于 2010-03-21T03:47:51.353 回答