PDA

View Full Version : سوال: تغییر کدهای لینک به انتی تو لامبداentity lambda



علی فتحی
پنج شنبه 18 اردیبهشت 1393, 23:53 عصر
سلام دوستان خیلی تعریف دستورات انتی تی با لامبدا رو شنیدم ولی چیزی از اون نمیدونم . میگن سرعت برنامه رو چند برابر میکنه .لطفا تفاوت کدها و یا اموزش بگذارید اگر ممکنه

parvizwpf
جمعه 19 اردیبهشت 1393, 00:34 صبح
شما اصلا با خود مفهوم ها آشنایی دارید که الان میخواهید دستوراتشون رو یاد بگیرید؟ کافیه مفاهیم رو حتی به فارسی سرچ کنید تا اطلاعات خوبی بگیرید.

ali_md110
شنبه 27 اردیبهشت 1393, 02:45 صبح
بله دوست من
عبارات لامبدا بسیار انعطاف پذیر هستند همچنین سرعت کدنویسی شما رو بالا میبره
در Entity FrameWork از Linq To Entity و navigationProperties هاو سایر امکانات آن استفاده کنید و تفاوت را احساس کنید
البته دستورات لامبدا در نهایت به Tsql تبدیل میشوند تا قابل فهم باشه برای اسکیول سرور
برای اشنایی بیشتر سری بزنید به سایتش:
http://msdn.microsoft.com/en-us/data/ee712907#getstarted

rahmatipoor
جمعه 09 آذر 1397, 16:42 عصر
با عرض سلام

آیا Linq To Entity با لامبدا متفاوت هست و یا اینکه یکی هستند

اگه کسی از دوستان این موضوع رو توضیح بده ممنون میشم.

مهدی کرامتی
جمعه 09 آذر 1397, 20:03 عصر
آیا Linq To Entity با لامبدا متفاوت هست و یا اینکه یکی هستند
Linq to Entities یک مکانیسم دسترسی به داده ها است، و عبارت های Lambda جزو قابلیت های زبان سی شارپ است که نوشتن کوئری ها را برای شما تسهیل می کند.


خیلی تعریف دستورات انتی تی با لامبدا رو شنیدم
دستورات EF با عبارت های Lambda یکی نیست. دستوراتی که EF پشتیبانی می کنند عبارتند از SaveChanges و امثالهم. این گونه دستورات می توانند داده ها را در دیتابیس بنویسند و یا در آن تغییر ایجاد کنند. اما دستورات Lambda که در Linq استفاده می شوند صرفا برای خواندن داده ها هستند.


میگن سرعت برنامه رو چند برابر میکنه.
لزوما سرعت اجرای برنامه رو بالا نمی بره، بلکه به قول دوست مان ali_md110 (http://barnamenevis.org/member.php?18325-ali_md110) ، سرعت کدنویسی شما رو بالاتر می بره، چون کد کمتری باید برای خواندن داده ها و کوئری گرفتن بنویسید.

pe32_64
جمعه 09 آذر 1397, 20:39 عصر
با عرض سلام

آیا با لامبدا متفاوت هست و یا اینکه یکی هستند

اگه کسی از دوستان این موضوع رو توضیح بده ممنون میشم.
سلام
lambda و Linq To Entity متفاوت اند .
در برخی جاها شما یک پارامتری به نام delegate داری که از جنس تابع (method) هستش ، یعنی کد هستش. برا استفاده از اینها لازم نیست هر بار در کلاس یک متد تعریف کنی و در جای مورد نظر صداش بزنی.
میتونی فقط اونجا بدنه (کد اجرایی) تابع رو بنویسی، که بهش میگن lambda .
یعنی lambda یک ویژگی در syntax زبان #c هستش که برا استفاده راحت تر از توابع بدون نام (Anonymous method).

lambda در Linq To Entity استفاده میشه.


//********************//
کد عادی زیر



private ComboBox combo;
private Label label;
public CreateControls()
{
combo = new ComboBox();
label = new Label();
//some initializing code
combo.SelectedIndexChanged += new EventHandler(combo_SelectedIndexChanged);
}
void combo_SelectedIndexChanged(object sender, EventArgs e)
{
label.Text = combo.SelectedValue;
}


که بعد از استفاده از lambda به این صورت در میاد:


public CreateControls()
{
ComboBox combo = new ComboBox();
Label label = new Label();
//some initializing code
combo.SelectedIndexChanged += (s, e) => {label.Text = combo.SelectedValue;};
}

rahmatipoor
شنبه 10 آذر 1397, 18:56 عصر
ممنون از دوستان عزیز تا حدودی متوجه شدم