PDA

View Full Version : سوال: چطور میشه با استفاده از linq فهمید که یه مقدار برگشت داده شده یا نه؟



dontspeak
سه شنبه 14 تیر 1390, 14:12 عصر
سلام دوستان
من می خوام ببینم آیا یک مقدار قبلا توی دیتابیس وجود داشته یا نه بعد یه عملی رو انجام بدم. چطور باید اینو تست کنم

mehdi.mousavi
سه شنبه 14 تیر 1390, 15:22 عصر
سلام دوستان من می خوام ببینم آیا یک مقدار قبلا توی دیتابیس وجود داشته یا نه بعد یه عملی رو انجام بدم. چطور باید اینو تست کنم

سلام.
اگر منظورتون پیدا کردن معادل IF EXISTS هستش، می تونید از Any Operator (http://msdn.microsoft.com/en-us/library/bb337697.aspx) استفاده کنید. (توضیحات بیشتر و نحوه استفاده (http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/66a0eee0-cccd-44ce-9917-6a388d923a6a/))

موفق باشید.

dontspeak
سه شنبه 14 تیر 1390, 16:07 عصر
ممنون از جوابتون. من می خوام وقتی یه یوزر رو بن کردم و اونو داخل دیتابیس گذاشتم موقع لود صفحه چک کنم که آیا این آی پی بن شده یا نه؟ من این کد رو نوشتم

string IpUser = HttpContext.Current.Request.UserHostAddress;
UserBanDataContext IPBan=new UserBanDataContext();
var Query = from T in IPBan.UserBans
where T.IPBanUser == IpUser
select T.IPBanUser;

if (Query != null)
{
lblUpladMS.Text = "ok";
}
اما ظاهرا اشتباهه. اون لینکهایی که دادید رو خوندم ولی چیزی نفهمیدم. طبق این کد میشه راهنمایی کنید؟

dontspeak
سه شنبه 14 تیر 1390, 16:15 عصر
ممنون ممنون ممنون و ...
الان که قشنگ نگاه کردم فهمیدم. مثلا توی کدی که بالا نوشتم باید از Query.any() استفاده میکردم. یعنی

if (Query.any())

Peyman.Gh
سه شنبه 14 تیر 1390, 16:16 عصر
if (Query.Count() > 0)
{
// Exist

}

موفق باشید.

mehdi.mousavi
سه شنبه 14 تیر 1390, 16:24 عصر
ممنون ممنون ممنون و ... الان که قشنگ نگاه کردم فهمیدم. مثلا توی کدی که بالا نوشتم باید از Query.any() استفاده میکردم. یعنی
if (Query.any())

بله، اما می تونید جای کد زیر

var Query = from T in IPBan.UserBans
where T.IPBanUser == IpUser
select T.IPBanUser;

if (Query != null)

از این کد


bool exists = IPBan.UserBans.Any(u => u.IPBanUser == IpUser);
if(exists) {
}


استفاده کنید.