PDA

View Full Version : نحوه استفاده از عبارات لامبدا



Yanehsar
سه شنبه 04 تیر 1392, 10:28 صبح
سلام دوستان
به تازگی شروع به یادگیری linq کردم می خواستم بدونم چطوری باید از عبارات لامبدا استفاده کنم ؟آیا باید Using خاصی (به جزء Linq) را فراخوانی کنیم .
106141

mthreat.info
سه شنبه 04 تیر 1392, 10:37 صبح
از c=>c تو کدهات استفاده کن
مثلا


db.TSazmans.Select(c=>c.ID)

Yanehsar
سه شنبه 04 تیر 1392, 11:11 صبح
از c=>c تو کدهات استفاده کن
مثلا


db.TSazmans.Select(c=>c.ID)


ممنونم اما وقتی دستور Select تی که شما استفاده کردید برای من نمییادش من چطوری از C استفاده کنم ؟داخل عکس اگر دقت کنید من از where می خوام استفاده می کنم

mthreat.info
سه شنبه 04 تیر 1392, 11:37 صبح
من به عنوان مثال عرض کردم وگرنه فرقی نمیکنه شما C فکر کن متغییر هستش!! C.ID هم فیلدی هم که میخواهید!
برای Where هم قرقش تو شرط گذاشتنه!!!


var query = db.TSazmans.Where(c => c.ID== ed)

تو کد بالا ed یک عدد هست برای تکست از .Contains بعد از اسم فیلدتون استفاده کنید!


var query= db.TSazmans.Where(c => c.Name.Contains(textbox1.text)

alexmcse
سه شنبه 04 تیر 1392, 11:49 صبح
ممنونم اما وقتی دستور Select تی که شما استفاده کردید برای من نمییادش من چطوری از C استفاده کنم ؟داخل عکس اگر دقت کنید من از where می خوام استفاده می کنم


نمونه

var q= db.Books.Where(p => p.name == "C++").Single();
Text = q.name;

حرف C یک متغییر است مثل p
میتوانید هر اسم یا حروفی بجای سی یا پی قرار دهید

Yanehsar
سه شنبه 04 تیر 1392, 11:54 صبح
من به عنوان مثال عرض کردم وگرنه فرقی نمیکنه شما C فکر کن متغییر هستش!! C.ID هم فیلدی هم که میخواهید!
برای Where هم قرقش تو شرط گذاشتنه!!!


var query = db.TSazmans.Where(c => c.ID== ed)

تو کد بالا ed یک عدد هست برای تکست از .Contains بعد از اسم فیلدتون استفاده کنید!


var query= db.TSazmans.Where(c => c.Name.Contains(textbox1.text)

دوست عزیز من اینطوری سوال کنم بهتر
1- آیا عبارات Select & where رو خوده برنامه سی برامون میاره یا باید بنویسیم ؟مثله وقتی که می نویسیم For برای ما نمایش میده
2- وقتی من C رو تعریف می کنم و دات می ذارم مگه نباید به فیلدهای بانکم دسترسی داشته باشم ؟
اما نه مورد اول برای من ظاهر میشه نه مورد دوم مشکل من اینجاست دوست عزیز نمی دونم کجایی کارم ایراد داره .

mthreat.info
سه شنبه 04 تیر 1392, 12:36 عصر
نگاه کنید تا اونجا که من میدونم Linq رو میشه هم مجزا هم داخل کد استفاده کرد
مجزا نیاز به Using linq داره:



var query1 = from c in dblq.Users
select new
{
c.memberCode,
c.FName,
c.LName,
c.identityNum,
c.identityEmission,
c.BirthDay,
c.job,
c.membershipDate,
c.address,
c.tell,
c.email
};


تو کد بالا من تمامی اطلاعات جدول User و رکورد هایی که خودم میخوام نمایش میدم

حالا بصورت داخل کد که نیاز به Using نداره :



var qw = dblq.mozoebooks.Select(c => c.MozoBoks)

تو کد بالا همه ی اطلاعات داخل جدول mozoebooks رو میاره!!!
حالا شما میگید من برای Select نمیخوام برای Where میخوام باز همین طوری هست هیچ فرقی نمیکنه (قبلا توضیح دادم)
حالا اگه تو پروژه ی شما نشون داده نمیشه این دستورات :
1-بانکی ست نکرده اید
2-با فریم ورک قدیمی دارید مینویسید (فکر کنم از 3 به بعد میتونی از Linq استفاده کنی)
.
.
.

Yanehsar
سه شنبه 04 تیر 1392, 13:01 عصر
نگاه کنید تا اونجا که من میدونم Linq رو میشه هم مجزا هم داخل کد استفاده کرد
مجزا نیاز به Using linq داره:



var query1 = from c in dblq.Users
select new
{
c.memberCode,
c.FName,
c.LName,
c.identityNum,
c.identityEmission,
c.BirthDay,
c.job,
c.membershipDate,
c.address,
c.tell,
c.email
};


تو کد بالا من تمامی اطلاعات جدول User و رکورد هایی که خودم میخوام نمایش میدم

حالا بصورت داخل کد که نیاز به Using نداره :



var qw = dblq.mozoebooks.Select(c => c.MozoBoks)

تو کد بالا همه ی اطلاعات داخل جدول mozoebooks رو میاره!!!
حالا شما میگید من برای Select نمیخوام برای Where میخوام باز همین طوری هست هیچ فرقی نمیکنه (قبلا توضیح دادم)
حالا اگه تو پروژه ی شما نشون داده نمیشه این دستورات :
1-بانکی ست نکرده اید
2-با فریم ورک قدیمی دارید مینویسید (فکر کنم از 3 به بعد میتونی از Linq استفاده کنی)
.
.
.
نمی دونم چه مشکلی داره برنامه من ورژن دات نتم 4 هستش به پروسجرهای تعریف شده داخل SQL دسترسی دارمو عملیات مورد نظرم انجام میدم (insert , update ,delete) اما برای Select , where مشکل دارم .

mthreat.info
سه شنبه 04 تیر 1392, 13:05 عصر
به سینتکس توجه میکنید؟ میشه کد خودتونو بزارید؟
Linq مجزا select رو کوچک و داخلی Select , S رو بزرگ مینویسن

Yanehsar
سه شنبه 04 تیر 1392, 13:14 عصر
به سینتکس توجه میکنید؟ میشه کد خودتونو بزارید؟
Linq مجزا select رو کوچک و داخلی Select , S رو بزرگ مینویسن
به عکس داخل اولین تایپک دقت کنید کد های من هستش نمیدونم چیزی کم داره یا ن
فرض کنید می خوام تعداد رکوردهای جدول سازمان رو بشمارم .

tooraj_azizi_1035
سه شنبه 04 تیر 1392, 14:37 عصر
// Use a connection string.
Northwind db = new Northwind(@"C:\linqtest5\northwnd.mdf");

// Query for customers from Seattle.
var custQuery =
from cust in db.Customers
where cust.City == "Seattle"
select cust;

foreach (var custObj in custQuery)
{
Console.WriteLine("ID={0}", custObj.CustomerID);
}
// Freeze the console window.
Console.ReadLine();

programer97
شنبه 08 تیر 1392, 12:00 عصر
سلام دوستان
به تازگی شروع به یادگیری linq کردم می خواستم بدونم چطوری باید از عبارات لامبدا استفاده کنم ؟آیا باید Using خاصی (به جزء Linq) را فراخوانی کنیم .
106141
سلام
نه نیازی به using کردن کلاس دیگری نیست
دستور select و where هر دو در System.Data.Entity.dll که با اضافه کردن مدل به برنامه اضاف میشه.
واسه اطمینان بیشتر این dll رو مجدد به Refrence برنامه اضافه کن.
امیدوارم مشکلت حل بشه.