Как получить граф из FromSql? - PullRequest
0 голосов
/ 06 ноября 2018

у меня

dbContext.Items.FromSql("SELECT COUNT(*) 
                         FROM Items 
                         WHERE JSON_VALUE(Column, '$.json') = 'abc'")

Это возвращает IQueryable, мне интересно, как я могу вернуть скаляр int обратно?

Ответы [ 4 ]

0 голосов
/ 07 ноября 2018

Вы должны передать composable SELECT SQL в метод FromSql, например. SELECT * - см. Необработанные SQL-запросы . Затем вы можете применять обычные операторы LINQ Queryable, включая Count:

var count = dbContext.Items
    .FromSql("select * FROM Items Where JSON_VALUE(Column, '$.json') = 'abc'")
    .Count();
0 голосов
/ 06 ноября 2018

Попробуйте

 var firstElement = dbContext.Items
                             .FromSql (..)
                             .ToList
                             .First();
0 голосов
/ 06 ноября 2018

FromSQL имеет некоторые ограничения:

  • Запрос SQL должен возвращать данные для всех свойств сущности или типа запроса.

Итак, попробуйте это:

var elements = dbContext.Items
                         .FromSql("SELECT * from dbo.Items")
                         .ToList();

var countOfElements = elements.Count();
0 голосов
/ 06 ноября 2018

Вы можете сделать что-то вроде: dbContext.Items.Count()

Вы всегда можете сделать .Count() функцию на IQueryable

Edit: Когда потребность FromSql действительно есть, что-то вроде этого должно сделать работу:

var count = context.Items.FromSql("Select count(*) from items").First();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...