Dapper:メソッドが見つかりませんでした: 'System.Collections.Generic.IEnumerable`1 GridReader.Read(Boolean) '

.net asp.net-mvc c#-4.0 dapper generics

質問

私は、私たちのWebサイトのいくつかの遅い部分をスピードアップするために、DapperのEFコードの最初のdbリクエストを交換するつもりです。私はちょうど実験を始めました、そしてDapperはうまくいくようです。

.Query拡張機能を使用するコードを変換しました。しかし、今私は.QueryMultipleを試していますし、.read拡張は各結果セットを取得するために使用します。

私は新しいプロジェクトにDapperコードを移動しようとしましたが、私のMVCプロジェクトから離しておきます。しかし、コード内のブレークポイントにヒットする前に、.QueryMultipleでメソッドにアクセスしようとすると、エラーが発生します。

Method not found: 'System.Collections.Generic.IEnumerable`1<!!0> GridReader.Read(Boolean)'.

私がコードをWebプロジェクトに移すとうまくいきます。

私は必要なものや欠けているものを解決できません。 Visual StudioとReSharperは満足しているようです。コンパイル中です。これは単なる実行時の問題です。どちらのプロジェクトも.Net 4.5をターゲットにしており、どちらもDapperへのナゲットリファレンスを持っています。 DapperプロジェクトはWin C#クラスライブラリとして設定されています。私はSqlReader.csのソースコードを見てきましたが、まだ持っていないものはありません。 System.Collections.Genericは自動的にインクルードされていますが、確かにAdd referencesダイアログでは選択できないようです。

本当に明白な何かが欠けていると感じます...

コードは次のとおりです:

        using (var conn = new SqlConnection(ConnectionString))
        {
            conn.Open();

            // TODO: Add in checks
            const string query = @"
            SELECT * FROM FileCollections WHERE Id = @fileCollectionId
            SELECT * FROM Files f WHERE FileCollection_Id = @fileCollectionId
            SELECT * FROM ExternalLinks WHERE FileCollection_Id = @fileCollectionId
            ";

            // return a GridReader
            using (var result = conn.QueryMultiple(query, new {fileCollectionId}))
            {
                var fileCollection = result.Read<FileCollection>().Single();
                var files = result.Read<File>().ToList();
                fileCollection.Files = files;
                var externalLinks = result.Read<ExternalLink>().ToList();
                fileCollection.ExternalLinks = externalLinks;
                return fileCollection;
            }
        }

受け入れられた回答

私はまったく同じ問題を抱えていた。私の修正は、Dapper 1.12.1からDapper 1.13にアップグレードしてNugetを使って動作させることでした。

私の場合、問題は1つのプロジェクトでDapper 1.13を、同じソリューションでDapper 1.12.1を別のプロジェクトに配置したことでした。

このヘルプが欲しい!



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ