نمایش نتایج 1 تا 5 از 5

نام تاپیک: سرعت پاینن Fill کردن دیتا گرید با select تو در تو در linq

  1. #1
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    https://gardesh-gar.ir
    پست
    527

    سرعت پاینن Fill کردن دیتا گرید با select تو در تو در linq

    سلام.
    وقتی میخوام از فیلد یک جدول دیگر با else ، if سرعت لود داده ها بسیار پایین میاد.
    آیا طریقه کد نویسی بنده درسته؟
    اینو برای مثال ببینید:
                    var select = db.TBL_Names.OrderByDescending(f => f.Id).ToList().Select((c, index) => new                {
    c.Id,
    RowIndex = index + 1,
    Test = !c.Table2s.Any()
    ? "is valid"
    : c.Table2s.OrderByDescending(d => d.Id)
    .FirstOrDefault()
    .Bool.Choose("is valid",
    true, "invalid",
    false, "is valid"),
    });
    dgv.DataSource = select;

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: سرعت پاینن Fill کردن دیتا گرید با select تو در تو در linq

    سلام
    بله، به نظر میاد کار شما درست نیست.
    اول این که وقتی به حالت c.Table2s استفاده می‌کنی سرعت پایین میاد. خودت Join کن.
    دوم این که ToList باعث اجرای query و آمدن اطلاعات به حافظه‌ی کامپیوتر می‌شه.
    برای حداکثر سرعت باید فقط یک ToList در آخر کار داشته باشی. یعنی درست جایی که دیگه
    نیازی به دیتابیس نداری.

    صبا صبوحی

  3. #3
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    https://gardesh-gar.ir
    پست
    527

    نقل قول: سرعت پاینن Fill کردن دیتا گرید با select تو در تو در linq

    نقل قول نوشته شده توسط SabaSabouhi مشاهده تاپیک
    سلام
    بله، به نظر میاد کار شما درست نیست.
    اول این که وقتی به حالت c.Table2s استفاده می‌کنی سرعت پایین میاد. خودت Join کن.
    دوم این که ToList باعث اجرای query و آمدن اطلاعات به حافظه‌ی کامپیوتر می‌شه.
    برای حداکثر سرعت باید فقط یک ToList در آخر کار داشته باشی. یعنی درست جایی که دیگه
    نیازی به دیتابیس نداری.

    صبا صبوحی
    سپاسگذارم از پاسخ شما.
    اگر در آن قسمت از ToList استفاده نکنم حتما با خطای زیر روبرو میشم:
    Unsupported overload used for query operator 'Select'.
    ولی اینبار بنده ToList را حذف نمودم و بجای آن از AsEnumerable
    استفاده نمودم.
    تاثیر محسوسی مشاهده نشد!
    حالا Join هم امتحان میکنم.
    اگر بازهم راهی بنظرتون میرسه سپاسگذار میشم پاسخ دهید...

  4. #4
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    https://gardesh-gar.ir
    پست
    527

    نقل قول: سرعت پاینن Fill کردن دیتا گرید با select تو در تو در linq

    سلام.
    مشکل رو برطرف کردم.
    دوستانی که مثل بنده یروزی به چنین مشکلاتی برخورد کردند.
    بجای استفاده از عبارتهای lambda از query لینک استفاده کنید ، که سرعتش بسیار بالاست...
    موفق باشید

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: سرعت پاینن Fill کردن دیتا گرید با select تو در تو در linq

    سلام
    دوست من دو تا پست زدی که برای هر دو باید چیزهایی رو بگم.
    1. ToList و AsEnumerable فرقی ندارن. هر دو از دیتابیس اطلاعات رو می‌خونن.
    من نمی‌دونم دقیقاً می‌خوای چیکار کنی. اما راه داره که مجبور نشی بری سراغ Db.
    من خودم یه جاهایی در شرایط پیچیده این مشکل رو داشتم، وقت گذاشتم و مشکل رو حل کردم.

    2. استفاده از query لینک مشکل شما رو حل کرده، چون همون اتفاقی افتاده که من گفتم. یعنی فقط
    یکبار رفتی سراغ دیتابیس.
    با Lambda هم می‌تونی همین کار رو انجام بدی، فقط راهش رو پیدا کن.
    در پایان Lambda و LinQ query هر دو یک کار می‌کنن. هر کدوم رو که راحت‌تر هستی انجام بده
    من Lambda رو ترجیح می‌دم چون
    * خیلی سریع‌تر می‌تونم بنویسم
    * خیلی خواناتر هست.

    این خوانا بودن خیلی اهمیت داره. بخصوص وقتی که بعد از 1 سال کنار گذاشتن پروژه مجبور بشی یک تغییر توش بدی.
    اونجا هست که خوانا بودن ارزشش معلوم می‌شه. یا این که یک نفر دیگه بخواد این کار رو انجام بده.

    صبا صبوحی

تاپیک های مشابه

  1. خالی کردن دیتا گرید
    نوشته شده توسط migrant در بخش C#‎‎
    پاسخ: 1
    آخرین پست: جمعه 24 خرداد 1387, 18:36 عصر
  2. وصل کردن دیتا گرید به دیتابیس با استفاده از کد نویسی (تازه کار)
    نوشته شده توسط SeyedMoosavi در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 5
    آخرین پست: یک شنبه 16 دی 1386, 13:36 عصر
  3. scrol کردن دیتا گرید
    نوشته شده توسط alih988 در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: پنج شنبه 12 مهر 1386, 12:28 عصر
  4. پر کردن دیتا گرید از بانک اطلاعاتی
    نوشته شده توسط vahid2006 در بخش VB.NET
    پاسخ: 4
    آخرین پست: یک شنبه 23 مهر 1385, 15:54 عصر
  5. پر کردن دیتا گرید با OleDbCommand
    نوشته شده توسط amir_3530 در بخش C#‎‎
    پاسخ: 4
    آخرین پست: چهارشنبه 06 مهر 1384, 21:21 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •