PDA

View Full Version : سرعت linq در شبکه



mehran_sh_t
شنبه 10 تیر 1391, 16:03 عصر
با سلام
اولین برنامه ای هستش که دارم در شبکه می نویسم، و برای دسترسی به داده ها از linq استفاده می کنم.
سوالم اینه، وقتی می خوایم یک رکورد رو از جدول بخونیم، با استفاده از کد زیر مثلا:

from obj in objects where obj.id == somevalue select obj

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

mehran_sh_t
شنبه 10 تیر 1391, 22:10 عصر
سوالمو یه طور دیگه میگم!
کوئری های linq، سمت سرور هستند؟ یا سمت برنامه؟

amir3321
یک شنبه 11 تیر 1391, 12:02 عصر
با سلام
تا اونجایی که من متوجه شدم دستورات ابتدا تبدیل به کوئری اس کیو ال شده و در یک تراکنش به سمت اس کیو ال ارسال می شود بیشتر زمان در تبدیل لحظه ای لینک به کوئری هست که برای ان هم روش های مخصوص به خود وجود دارد
البته می شود با تبدیل asenumerable شرطهای خاص رو در سمت کلاینت اعمال کرد
لینک 1 (http://social.msdn.microsoft.com/Forums/is/adodotnetentityframework/thread/3dc6b6c0-416c-4453-a9b3-0232256d765a)
لینک 2 (http://stackoverflow.com/questions/4824367/linq-to-entities-linq-to-sql-switching-from-server-queryable-to-client-enu)