模擬iQueryableのプロバイダーとして何を置くか
-
20-09-2019 - |
質問
私は一緒に働いています ほくろ system.data.linq.tableをmock笑します。
私はそれをうまく構築しましたが、私がそれを使用するとき、それはiQueryableを望んでいます。プロバイダー モックされる(溶けた)。
通常のLINQをオブジェクトに使用したいだけです。それが何なのか考えていますか?
これが私が使用できる構文です:
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? ----------------------------------------+
解決
最も簡単なのはaです List<T>
として使用できます IQueryable<T>
経由 .AsQueryable()
.
MolesDelegates.Func<IQueryProvider> provider = () => userLinqList.AsQueryable().Provider;
これが、Linq2SQLをモックアウトするために、メモリデータベースとして使用するものです。シンプルでエレガント。
他のヒント
簡単な解決策は、list.asqueryable()をテーブルにバインドすることです。 iQueryableメソッドは、リストに自動的に再ルーティングされます。
所属していません StackOverflow