Entity Framework связывает сырой SQL-запрос с классом модели

2

Я получил задание разработать систему управления футбольным столом. Я решил сделать это с помощью asp.net mvc. Единственное требование - использовать необработанные SQL-запросы. Поэтому я не могу использовать linq или лямбда. Я хотел бы сделать что-то вроде этого:

using (var context = new FootballTableContext())
{
     var players = context.Database.SqlQuery<PlayerViewModel>("SELECT Vardas, Pavarde FROM ZAIDEJAS").ToList();
}

но после выполнения этого кода, я получаю список PlayerViewModel с null значениями.

Класс ViewModel:

public class PlayerViewModel
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

Класс контекста:

public class FootballTableContext : DbContext
{
    public FootballTableContext() : base("DefaultConnection") { }
}

Итак, мой вопрос заключается в том, как связать этот запрос с моей ViewModel?

Теги:
entity-framework

1 ответ

3
Лучший ответ

Сделай это так:

var players = dbContext.Database
    .SqlQuery<PlayerViewModel>("SELECT Vardas as FirstName, Pavarde as LastName FROM ZAIDEJAS")
    .ToList<PlayerViewModel>();

Он известен как SQL-запросы для не-сущностей.

  • 0
    Но теперь он не скомпилируется: The type arguments for method 'Database.SqlQuery<TElement>(string, params object[])' cannot be inferred from the usage. Try specifying the type arguments explicitly.
  • 0
    Пожалуйста, смотрите мое редактирование. Я почти уверен, что он будет работать только с ToList() если указаны имена столбцов. Я думаю, вы можете проверить оба способа и дайте мне знать.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню