Что поставить в качестве провайдера для смоделированного IQueryable - PullRequest
4 голосов
/ 11 февраля 2010

Я работаю с Родинками и издеваюсь над System.Data.Linq.Table.

Я понял, что это нормально, но когда я его использую, он хочет, чтобы IQueryable. Провайдер также подвергался насмешке (moled).

Я просто хочу использовать обычные 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? ----------------------------------------+

Ответы [ 2 ]

7 голосов
/ 11 февраля 2010

Простейшим будет List<T>, который можно использовать как IQueryable<T> через .AsQueryable().

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

Это то, что я использую в качестве базы данных в памяти, чтобы макетировать Linq2Sql. Просто и элегантно.

0 голосов
/ 21 марта 2010

Простым решением было бы связать list.AsQueryable () с таблицей. Методы IQueryable будут автоматически перенаправлены в список.

...