2

PredicateBuilder を使用して動的に作成したクエリを実行しようとすると、問題が発生します。

クエリを作成することはできますが、クエリ自体を実行すると、次の「TypeLoadException」が発生します...

実行時: return context.SearchRecords.AsExpandable().Where(predicate).ToList();

アセンブリ 'EntityFramework、バージョン = 6.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089' から型 'System.Data.Entity.Infrastructure.IDbAsyncEnumerable`1' を読み込めませんでした。

私はこれでかなり長い間髪を伸ばしてきました。オンラインの例などを確認しましたが、すべてを正しく行っているように見えるので、これが機能することを期待しています.

private IEnumerable<SearchDto> BuildAndExecuteQuery(string queryString)
    {
        var queryWords = this.GetQueryWordsFromQueryString(queryString);
        using (var context = new AlleyOopSearchContext())
        {
            var predicate = PredicateBuilder.False<SearchDto>();
            foreach (var word in queryWords)
            {
                var temp = word;
                predicate = predicate.Or(p => p.ShotDescription.Contains(temp));
            }

            return context.SearchRecords.AsExpandable().Where(predicate).ToList();
        }
    }

プロジェクトは .NET Framework 4.5 を使用して構築され、Entity Framework 6 を使用します。

前もって感謝します!

4

1 に答える 1

0

さらに調査した結果、自分で答えを見つけたところ、ソリューション内の別のプロジェクトが新しいバージョンの Entity Framework を参照していることが判明しました。

すべてのプロジェクトを同じバージョンにアップグレードすると、この問題は解決しました。

于 2014-09-08T13:29:50.227 に答える