با سلام
در ado.net جهت گرفتن یک گزارش مراحل زیر را در Winform انجام می دهم:
SqlCommand_11 = new SqlCommand();

SQL_String = "SELECT dbo.Kala_tbl.Code_Kala " +
"FROM dbo.Shahr_tbl INNER JOIN " +
"dbo.Anbar_tbl ON dbo.Shahr_tbl.Code_Shahr = dbo.Anbar_tbl.Code_Shahr RIGHT OUTER JOIN " +
"dbo.Kala_tbl ON dbo.Anbar_tbl.Code_Anbar = dbo.Kala_tbl.Code_Anbar ";

SQL_String += "WHERE dbo.Anbar_tbl.Code_Anbar =" + Code_Anbar.Text.Trim() + " "; ;
SQL_String += "AND dbo.Kala_tbl.Name_Kala LIKE N'%" + Name_Kala.Text.Trim() + "%' ";

SqlConnection_11 = new SqlConnection(strcon_11);

SqlCommand_11.Connection = SqlConnection_11;
SqlCommand_11.CommandText = SQL_String;

try
{
SqlConnection_11.Open();
searchReader = SqlCommand_11.ExecuteReader((CommandBehavior.Close Connection));

if (searchReader.HasRows)
{
searchReader.Read();

Code_Kala.Text = searchReader["Code_Kala"].ToString();
}
else
{
Code_Kala.Text = "";
}


searchReader.Close();
}

catch
{
}
finally
{
if (SqlConnection_11.State != ConnectionState.Closed)
SqlConnection_11.Close();
}
حال در برنامه ASP.Net MVC می خواهم چنین گزارشگیری اعمال کنم. حداکثر کاری که توانسته ام این بوده که در کنترلر. در اکشن ایندکس فیلتر زیر را بنویسم. ولی می خواهم فیلتر آنگونه که در بالا هست نوشته شود. یعنی روی چند جدول جوین شده و با دستورات SQL و پارامتر گرفتن از کمبوباکس همراه باشد.

public class PersonalController : Controller
{
private SchoolContext db = new SchoolContext();

private string FirstName_keyword = "1";
private string LastName_keyword = "1";
private string Phone_keyword = "1";


public ActionResult Index()
{
//return View(db.Personals.ToList());


var listOfPersonal = db.Personals.Where(current =>
current.FirstName.Contains(FirstName_keyword) &
current.LastName.Contains(LastName_keyword) &
current.Phone.Contains(Phone_keyword)).ToList();

return View(listOfPersonal);


با سپاس فراوان