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

نام تاپیک: جستجو با فیلد داینامیک در linq to sql

  1. #1
    کاربر دائمی آواتار BOB
    تاریخ عضویت
    خرداد 1383
    محل زندگی
    http://www.mshams.ir
    پست
    450

    جستجو با فیلد داینامیک در linq to sql

    سلام

    در یک بانک اطلاعاتی سه جدول member، info و experience موجود است و هدف ما جستجوی member هایی است که دارای شرایط خاصی هستند.
    فیلدهای مورد جستجو به سه شئ از انواع Linq.Table مقدار دهی شده و به روال search ارسال میشوند.

    حال میخواهم در روال search، تمام فیلدهای غیر null که در سه پارامتر دریافتی مقدار دهی شده اند در شرط where چک شوند.
    من کد زیر را نوشتم، اما جواب نمیدهد.


    public static List<Member> searchFileds(Member mem, Info inf, Exp exp)
    {
    DataClassesDataContext db = new DataClassesDataContext();

    var query = from m in db.Members
    from i in db.Infos
    from e in db.Exps
    select m;

    foreach (var prop in mem.GetType().GetProperties())
    {
    if (prop.GetValue(mem, null) != null)
    {
    query = query.Where(p => p.GetType().GetProperty(prop.Name) == prop.GetValue(mem, null));
    }
    }

    var result = new List<Member>();
    foreach (var propMember in query)
    {
    result.Add(propMember);
    }

    return result;
    }



    آیا از روش درستی استفاده میکنم؟ راه دیگری برای اینکار وجود دارد؟

  2. #2

    نقل قول: جستجو با فیلد داینامیک در linq to sql

    سلام دوست عزیز.
    این query که زدی چنتا ایراد داره اولا اینکه شما 3 تا جدولو ضرب دکارتی کردی به جای اینکه بر اساس relation ای که با هم دارند join کنی .
    و فکر نمیکنیم در این مثال نیازی به استفاده از Reflection باشه.
    اینو ببین شاید به دردت بخوره .


    var query = from m in db.Members
    from i in db.Infos
    from e in db.Exps
    where m.Name == null
    select m;

برچسب های این تاپیک

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

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