Frage

Ich arbeite mit Maulwürfe und verspotten ein System.data.linq.table.

Ich habe es gut konstruieren, aber wenn ich es benutze, will es iQueryable.Anbieter Auch verspottet (geholt).

Ich möchte nur, dass es normale Linq für Objekte verwendet. Irgendeine Idee, was das wäre?

Hier ist die Syntax, die ich verwenden kann:

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? ----------------------------------------+
War es hilfreich?

Lösung

Das einfachste wäre ein List<T> die verwendet werden können als IQueryable<T> über .AsQueryable().

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

Das verwende ich als in Speicherdatenbank, um Linq2SQL zu verspotten. Einfach und elegant.

Andere Tipps

Die einfache Lösung wäre, die Liste zu binden. Asqueryable () an die Tabelle. Die markierbaren Methoden würden automatisch in die Liste umgeleitet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top