Как вызывать SQL-запросы в ASP .NET Core Web API - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь создать страницу входа, используя интерфейс переднего плана и ядро ​​ASP .NET. ТАК, пока пользователь входит в систему, я должен использовать запрос типа

Выберите * из UserLogin, где email = "asbhf@gmail.com"

чтобы мой URL API был

https://localhost:44383/api/UserLogins?email="asbhf@gmail.com"

Итак, я попробовал этот код в своем UserLoginController.cs

// GET: api/UserLogins?email="asd@gmail.com"
        public async Task<IActionResult> GetUserLogin([FromRoute] string email)
        {
            if (email == null)
            {
                return NotFound();
            }

            string query = "SELECT * FROM UserLogin WHERE email = @email";
            var UserLogin = await _context.UserLogin
            .FromSql(query, email)
            .Include(d => d.Username)
            .AsNoTracking()
            .FirstOrDefaultAsync();

            if (UserLogin == null)
            {
                return NotFound();
            }
            return Ok(UserLogin);
        }

но, он не будет печатать, как я ожидал. Не могли бы вы дать мне любую подсказку, чтобы решить мою проблему.

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Я имею в виду написать запрос sql для entityframework

Итак, мой рабочий код

 var UserLogin = _context.UserLogin.Where(c => c.Email == email);
0 голосов
/ 22 мая 2019

Во-первых, метод Include указывает связанные объекты для включения в результаты запроса. Он может использоваться для извлечения некоторой информации из базы данных, а также для включения связанных сущностей , а не указания полей для возврата. Для более подробной информации, вы можете обратиться к здесь .

Во-вторых, в разделе запроса данных есть некоторые ошибки, попробуйте следующую модификацию:

string query = $"SELECT Username FROM UserLogin WHERE email = @email";
var p1 = new SqlParameter("@email", email);

var UserLogin = await _context.UserLogin
              .FromSql(query, p1)
              .AsNoTracking()
              .FirstOrDefaultAsync();

Вы можете взглянуть на Выполнение необработанных SQL-запросов для использования FromSql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...