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

نام تاپیک: یک کوئری غلط با 20 برابر کاهش کارایی

  1. #1
    کاربر دائمی آواتار shahab_ksh
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تو اطاقم
    پست
    1,388

    یک کوئری غلط با 20 برابر کاهش کارایی

    این Query رو در نظر بگیرید !


    Dim Query = (From c In _Db.Users
    Select New With {.Id = c.Id,
    .Permission = GetpermissionTitle(c.Permission)
    })


    یک جدول به نام Users دارم و یک جدول به نام Permission هر یوسر از چندین پرمیژن استفاده می کنه من به خاطر اینکه عنواین پرمیژن رو بدست بیارم و با , از هم جدا کنم از تابع زیر استفاده می کنم


    Function GetpermissionTitle(t As Data.Linq.EntitySet(Of Permission)) As String


    Dim _Str As String = ","


    For Each _Item In t
    _Str = _Str & _Item.Title & ","
    Next


    Return _Str

    End Function


    اما این روش به شدت غلطه و به ازای هر Row باید این تابع رو اجرا کنه که به شدت کارایی رو پایین میاره

    در کل هدفم اینه پرمیژن ها رو بتونم با , از هم جدا کنم بهترین راه حل چیه !

  2. #2
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: یک کوئری غلط با 20 برابر کاهش کارایی

    نیازی نیست به این حلقه
    شما از Navigation Property ها میتونید بهره ببرید با eager loading
    شما باید برای اینگونه موارد دو موجودیت داشته باشید
    جدول User
    جدول Perission

    و یک جدول واسط برای روابط چند به چند

    کوئری زیر البته با C#‎ هست نمونهم ثال شما هست

    public ObservableCollection<Role> RolesOfUsers(User user)
    {
    List<Role> list = new List<Role>();
    foreach (var role in _roles.Include(x => x.Users).Where(x => x.Id == user.Id))
    list.Add(role);
    return new ObservableCollection<Role>(list);
    }


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

  1. کوئری همراه با where برابر با بدون where آن
    نوشته شده توسط delasaee در بخش T-SQL
    پاسخ: 2
    آخرین پست: چهارشنبه 20 بهمن 1389, 20:28 عصر
  2. سوال: کوئری همراه با where برابر با بدون where آن
    نوشته شده توسط delasaee در بخش C#‎‎
    پاسخ: 3
    آخرین پست: چهارشنبه 20 بهمن 1389, 16:46 عصر
  3. سوال: مشكل با يك كوئري (لطفا ببينيد)(كمــــــك)
    نوشته شده توسط Ali_Abban در بخش SQL Server
    پاسخ: 1
    آخرین پست: پنج شنبه 07 شهریور 1387, 21:03 عصر
  4. چمارش اعداد در یک کوئری یا فرم با یک شرط خاص
    نوشته شده توسط saras در بخش Access
    پاسخ: 2
    آخرین پست: پنج شنبه 25 خرداد 1385, 12:08 عصر
  5. حذف تمامی جداول با یک کوئری
    نوشته شده توسط فؤاد در بخش SQL Server
    پاسخ: 2
    آخرین پست: پنج شنبه 13 بهمن 1384, 20:53 عصر

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

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