用什么作为提供者的嘲笑的IQueryable [英] What to put as the Provider for a mocked IQueryable

查看:152
本文介绍了用什么作为提供者的嘲笑的IQueryable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我与工作,并嘲讽系统。 Data.Linq.Table。



我把它建设好,但是当我使用它,它想要的IQueryable 提供以被嘲笑(moled )也是如此。



我只是希望它的正常使用Linq到对象。 ?任何想法,这将是



下面是语法,我可以使用:

  MTable<使用者>为UserTable =新System.Data.Linq.Moles.MTable<使用者>(); 
userTable.Bind(新名单<使用者> {UserObjectHelper.TestUser()});

//这是一个需要帮助
MolesDelegates.Func<行; IQueryProvider>供应商= //将提供者在这里!
^
userTable.ProviderSystemLinqIQueryableget =供应商|
|
|
我可以把这里? ---------------------------------------- +


解决方案

最简单的将是一个列表< T> 这可以作为的IQueryable< T> 通过 .AsQueryable()



  MolesDelegates.Func< IQueryProvider>供应商=()=> 。userLinqList.AsQueryable()提供; 



这就是我作为一个使用内存数据库模拟出LINQ2SQL。古朴典雅。


I am working with Moles and mocking a System.Data.Linq.Table.

I got it constructing fine, but when I use it, it wants IQueryable.Provider to be mocked (moled) as well.

I just want it to use normal Linq To Objects. Any idea what that would be?

Here is the syntax I can use:

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

解决方案

Simplest would be a List<T> which can be used as IQueryable<T> via .AsQueryable().

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

That's what I use as a in memory database to mock out Linq2Sql. Simple and elegant.

这篇关于用什么作为提供者的嘲笑的IQueryable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆