2016-10-14 2 views
2

Я пытаюсь выполнить SELECT в таблице M1lhao объекта Sorteio (база данных).SQL Select on MVC4 Controller

Я не хочу использовать традиционный «строковый запрос» или способ AddWithParameter(), я хотел использовать доступные методы MVC4 EF5.

Следующий код передает всю таблицу в вид, что я могу сделать foreach в представлении, и все работает отлично. Я ищу, как я могу выполнить SQL-запрос, поэтому я могу передавать только те элементы, которые я хочу, отсортировал DESCending (например), очевидно, в списке и подчиняясь модели, которую ожидает View.

По существу я хочу замену (я пробовал варианты тоже db.Milhao и т.д.):

var data = db.Database.ExecuteSqlCommand("SELECT * From M1lhao WHERE DrawID = {0}", id); 

Проблема с Find() является то, что он только ищет первичные ключи.

Полный код:

public class M1lhaoController : Controller 
{ 
    private Sorteio db = new Sorteio(); 

    public ActionResult Index(int id = 1) 
    { 
     var data = db.Database.ExecuteSqlCommand("SELECT * From M1lhao WHERE DrawID = {0}", id); // the variable data comes as -1 
     M1lhao m1lhao = db.M1lhao.Find(id); 
     if (m1lhao == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(db.M1lhao.ToList()); 
    } 

} 

Спасибо.

ответ

2

Вы можете попробовать, как показано ниже.

var data = db.M1lhao.Where(m=>m.DrawID == id).Select(p=>p); 

Вы можете узнать больше о Method-Based Query Syntax : Projection

+0

Спасибо за ваш ответ. Это похоже на то, что я ожидал. Можете ли вы просто немного подробнее остановиться, точнее, как настроить свой SQL-запрос. –

+0

см. Update.if вам нужно больше, пожалуйста, дайте мне знать. – Sampath

+1

Я смог заставить его работать сейчас. Большое спасибо за Вашу помощь. –