PDA

View Full Version : سوال: استخراج فیلد خاص با شرایط خاص از یک دستور Linq



hahaie
چهارشنبه 21 مرداد 1394, 11:49 صبح
سلام دوستان.
فرض کنید دستور زیر رو داریم:


var a=from b in da.employee where b.id>0 select b;

حالا اگه بخواهیم از این a که همه مقادیر و فیلدهای employee را داره فیلد خاصی رو با شرط خاصی در بیاریم چکار باید بکنیم.
امیدوارم منظورما فهمیده باشین.منظورم اضافه کردن چیزی در دستور فوق نیست چون میخوام فقط یکبار دستور فوق نوشته بشه و هر جایی فیلد خاصی از اون با شرایطی خاص گرفته بشه.
ممنون

ahmadreza.s
چهارشنبه 21 مرداد 1394, 12:18 عصر
سلام دوستان.
فرض کنید دستور زیر رو داریم:


var a=from b in da.employee where b.id>0 select b;

حالا اگه بخواهیم از این a که همه مقادیر و فیلدهای employee را داره فیلد خاصی رو با شرط خاصی در بیاریم چکار باید بکنیم.
امیدوارم منظورما فهمیده باشین.منظورم اضافه کردن چیزی در دستور فوق نیست چون میخوام فقط یکبار دستور فوق نوشته بشه و هر جایی فیلد خاصی از اون با شرایطی خاص گرفته بشه.
ممنون

سلام

منظورت اینه که اینجوری باشه :

var a=from b in da.employee where b.id>0 select b; var z=from p in a where شرط مورد نظر select p;

hahaie
چهارشنبه 21 مرداد 1394, 13:28 عصر
نه دوست عزیز دستور بالا خروجی اصلیش یه جدوله یا یه لیسته بهتره بگم یه ماتریسه.
در صورتی که من دستور لینکیویی میخوام که یه مقدار سلول جدول رو برگردونه.

ahmadreza.s
چهارشنبه 21 مرداد 1394, 15:04 عصر
خوب واسه اینکه به هر سلول دسترسی پیدا کنی اینو بنویس مثلن :
اگه اسم ستون مورد نظر "jafar" باشه :

var a=from b in da.employee where b.id>0 select new {b.jafar};

ولی ممکنه این دستور یه آرایه یک بعدی برگردونه(مثلن اگه شرط جوری باشه که واسه چنتا ردیف شرط درست باشه) !

hahaie
شنبه 24 مرداد 1394, 13:32 عصر
اونقدر ها سخت نگفتم.فرض بگیرید همون دستوری که اول نوشتم میخوام فقط یک سلولش رو مقدارشا بخونم.
اگه سخته فرض بگیرید این دستور فقط مشخصات یک نفر رو بر میگردونه حالا من میخوام مثلا نام خانوادگی طرف رو از داخلش در بیارم و توی یک پیغام نشون بدم.چیکار کنم؟

Mahmoud.Afrad
یک شنبه 25 مرداد 1394, 00:05 صبح
اگر فقط یک شئ برگردانده میشه به اینصورت

var a = (from b in da.employee
where b.id > 0
select b).SingleOrDefault();
if (a != null)
{
// get properties
MessageBox.Show(a.Name);
}