Dapper: Как получить значение результата запроса в Entity Framework Core - PullRequest
0 голосов
/ 12 апреля 2020

Я использую Dapper для получения значения столбца из базы данных в Entity Framework Core следующим образом:

var query = await DbConnection.QueryAsync("SELECT AttachmentId FROM dbo.SystemSettings ");

var attachment = query.FirstOrDefault();

Этот код возвращает

{{ DapperRow, AttachmentId = '10' }}

Как я могу получить значение AttachmentId 10 для использования в следующем запросе

DbConnection.QueryAsync<Attachment>("SELECT * FROM dbo.Attachment WHERE Id = @Id", ???);

Ответы [ 2 ]

2 голосов
/ 12 апреля 2020

, чтобы соответствовать теме из 2 запросов в вопросе:

Int id = query.AttachmentId;
var objs = DbConnection.QueryAsync<Attachment>("SELECT * FROM dbo.Attachment WHERE Id = @Id", new { id });

Обратите внимание, что при чтении одного столбца может быть предпочтительнее использовать QueryAsync<int> или аналогичный, а не dynamic API.

1 голос
/ 12 апреля 2020

Спасибо @Fabio за ответ:

SELECT *
FROM dbo.Attachment 
WHERE Id IN (SELECT AttachmentId FROM dbo.SystemSettings)
...