PDA

View Full Version : راهننمایی در رابطه با تفاوت دو Syntax متفاوت LINQ TO SQL



sirvan-me
سه شنبه 12 دی 1391, 14:11 عصر
سلام به همه ی دوستان . من تازه کار با تکنولوژی LINQ TO SQL رو شروع کردم برای بخشی از برنامم دو جور کد SELECT متفاوت نوشتم ... می خواستم بدونم کدوم یک از این سینتکس ها بهتر و سریع تره .

var query = Db.[Table].Select(c => new {c.[Field]}).Where(d=>d[Field] == txt.Text.Trim());


.FieldCSHARP] var query2 = from c in Db.[Table] where c.[Field] == txt.Text.Trim() select c;
[/CSHARP]

hakim22
سه شنبه 12 دی 1391, 15:20 عصر
سینتکس دوم بهتره .

اصولا هر چی کمتر از LAMBDA استفاده کنید بهتره . چون کد رو برای کد نویس هم پیچیده می کنه و برای رایانه هم ساخت یک کلاس جدید (کاری که لامبدا در پس زمینه می کنه !) مشکلتره

sirvan-me
سه شنبه 12 دی 1391, 18:19 عصر
ممنون دوست من ... یه سوال دیگه ... من یکی از برنامه هام رو که با استفاده از Stored Procedure نوشته بودم رو با تکنولوژی EF نوشتم ... اما سرعت بالا که نرفت هیچ ... پایین هم اومد !!!!!!! این چطور ممکنه .... EF دقیقا برای چطور پروژه هایی خوبه ؟

hakim22
سه شنبه 12 دی 1391, 18:44 عصر
بهتره بگم که EF کار برنامه نویس ها رو راحت میکنه و نه کار بانک رو پس خود به خود زحمت بیشتری به سرور وارد می کنه.

بستگی داره که SP شما برای نوشتن بود یا برای خواند ؟ برای خواندن و نوشتن چند رکورد بود !؟

مشکل برنامه نویسی بانک اینه که هر چقدر برنامه رو شی گرا طراحی کنید وقتی به بانک میرسید تبدیل میشود به یک مشت command به صورت تکست.
فرض کنید نام یکی از ستونها رو در دیتابیس عوض کنید . برنامه ی شما دچار یک فاجعه میشود !
مخصوصا اگر بزرگ باشد و در جاهای مختلفی از اون ستون استفاده کرده باشید.
حالا فرض کنید مشتری به شما بگوید کنار نام و نام خانوادگی باید فیلدی برای نام پدر هم بگذارید ، این خودش میشود یک حادثه و با سرعت 160 رفتن توی دیوار!

کاری که EF می کند تبدیل کردن DataBase به یک شی قابل لمس و در دسترس است. در حقیقت در پس زمینه کدهای عظیم ( حداقی 4 تا 5 هزار خط) ساخته میشود و اشیا شکل می گیرند و دیگر به راحتی می توانید از LINQ استفاده کنید و با استفاده از Intellisense در VS خیلی زیبا گزارش گیری کنید.

برای یک ارسال و یک دریافت و یا برای گزارش گیری بسیار مناسب است.

در ضمن تنظیمات SQL هم می تواند در سرعت تاثیر زیادی بگذارد

sirvan-me
سه شنبه 12 دی 1391, 21:46 عصر
ممنون دوست من ...