PDA

View Full Version : and-or کردن linq



hojjjat
دوشنبه 21 مرداد 1392, 22:12 عصر
سلام
var qsearch = db.mails.Where(c => c.mailmaster.Contains(textBox1.Text)&&c.mail_.Contains(textBox2.Text));
dgv.DataSource = qsearch;
در کد بالا همانطور که میدانید فیلد mail master با فیلد m_ اند شده است
مشکل من اینجاست که کاربر باید انتخاب کند که چه چیزای با هم اند بشن
و چون جدول من 12 فیلد داره نوشتن این همه کد سر سام اور میشه
میخواستم ببینم راهی نیست که بشه بصورت پویا به برنامه گفت که چه چیزای اند بشن؟؟؟
امیدوارم تونسته باشم منظورمو برسونم

parvizwpf
سه شنبه 22 مرداد 1392, 16:58 عصر
http://stackoverflow.com/questions/5269125/how-to-apply-multi-criteria-search-to-linq
http://www.codeproject.com/Articles/168981/Guide-to-Creating-Dynamic-LINQ-Queries

hojjjat
چهارشنبه 23 مرداد 1392, 16:42 عصر
فکرم کنم باید از join استفاده کنم اگه میشه خودتون راهنماییم کنید

Mahmoud.Afrad
چهارشنبه 23 مرداد 1392, 17:40 عصر
میتونی به ازای هر کدوم از ورودی هایی که ممکنه کاربر وارد کنه یک if بنویسی و نیازی به شرط تودرتو نیست. اینجا (http://upload7.ir/images/54383648144189376268.png)رو ببین.

ali_autumnal
چهارشنبه 23 مرداد 1392, 17:50 عصر
شما بایستی از IQueryable استفاده کنید:
برای مثال:



static IList<Employee> FindEmployees(string fName, string lName, bool byName, bool byLName)
{
using (var db = new Sample06Context())
{
IQueryable<Employee> query = db.Employees.AsQueryable();

if (byLName)
{
query = query.Where(x => x.LastName == lName);
}

if (byName)
{
query = query.Where(x => x.FirstName == fName);
}

return query.ToList();
}
}


ادامه در لینک (http://www.dotnettips.info/post/840/ef-code-first-10) مطلب