c # Dapper - menggunakan linq pada metode QueryAsync

Sep 01 2020

Mengapa saya tidak bisa menggunakan .select pada queryAsync jika berfungsi dengan baik di Query? Misalnya, di sini .select berteriak pada saya mengatakan kepada saya bahwa itu tidak dapat menyelesaikan simbol "pilih":

var result = await sqlConnection.QueryAsync<Product>(procedure,
                            commandType: CommandType.StoredProcedure).Select(p => new Product
                        {
                            Code= (string)p.fldCode,
                            Name=(string)p.fldName
                            });

tetapi segera setelah saya beralih ke Query, Query tidak lagi berteriak. jika ada masalah dalam menyelesaikan kolom fldCode dari sp:

 var result = sqlConnection.Query<Product>(procedure,
                                commandType: CommandType.StoredProcedure).Select(p => new Product
                            {
                                Code= (string)p.fldCode,
                                Name=(string)p.fldName
                                });

kenapa ini?

Saya mengajukan pertanyaan sebelumnya di sini C # Dapper memetakan kolom ke properti entitas - "Tidak dapat menyelesaikan simbol 'Pilih'"

Jawaban

1 Milney Sep 01 2020 at 09:06

Metode Async mengembalikan Tugas (pada dasarnya placeholder untuk hasil akhir dari tindakan asinkron). Anda perlu menunggu untuk mendapatkan nilai sebenarnya

var result = (await sqlConnection.QueryAsync<Product>(
                 procedure,
                 commandType: CommandType.StoredProcedure
             )).Select(p => new Product
                {
                    Code= (string)p.fldCode,
                    Name=(string)p.fldName
                 }
             );