siolishe
یک شنبه 06 دی 1394, 01:05 صبح
سلام
من یه فرم جستجوی پیشرفته دارم که کد مربوط به selectش بصورت زیره:
var datasource = from source in db.Files
where
(source.Name == null || source.Name.Contains(name)) &&
(source.FamilyName == null || source.FamilyName.Contains(familyname)) &&
(source.Father == null || source.Father.Contains(father)) &&
(source.IDNumber == null || source.IDNumber.Contains(idnumber)) &&
(source.NationalID == null || source.NationalID.Contains(NationalID)) &&
(source.Tel == null || source.Tel.Contains(Tel)) &&
(source.Address == null || source.Address.Contains(Address)) &&
(source.Description == null || source.Description.Contains(Description)) &&
(CaseNumber == null || source.CaseNumber == (CaseNumber)) &&
(Type == "" || source.Type == (Type)) &&
(source.CaseName == null || source.CaseName.Contains(Casename)) &&
(Condition == null || source.Condition == Condition) &&
(source.AccountNumber == null || source.AccountNumber.Contains(AccountNumber)) &&
(Edeafrom == null || Edeato == null || Edeafrom <= source.Edea && source.Edea <= Edeato) &&
(Momtazfrom == null || Momtazto == null || Momtazfrom <= source.Momtaz && source.Momtaz <= Momtazto) &&
(Tempfrom == null || Tempto == null || Tempfrom <= source.Temp && source.Temp <= Tempto) &&
(Finalfrom == null || Finalto == null || Finalfrom <= source.Final && source.Final <= Finalto) &&
(Paid == null || source.Paid == Paid)
select source;
توی یه سری از فیلدها کاربر میتونه بازه مورد نظرشو وارد کنه مثلا : مقدار Final بین 100 تا 1000
حالا سناریو اینجوریه که اگه کاربر یکی از فیلدهای بازه رو وارد کرد مثلا : Final بزرگتر از 100 ، بصورت خودکار کلیه مقادیر بزرگتر از 100 رو برگردونه یعنی در واقع بیاد بصورت داینامیک شرط select رو تغییر بده جوری که نیاز به وارد کردن مقدار انتهایی بازه نباشه
کسی میتونه رهنمایی کنه؟
من یه فرم جستجوی پیشرفته دارم که کد مربوط به selectش بصورت زیره:
var datasource = from source in db.Files
where
(source.Name == null || source.Name.Contains(name)) &&
(source.FamilyName == null || source.FamilyName.Contains(familyname)) &&
(source.Father == null || source.Father.Contains(father)) &&
(source.IDNumber == null || source.IDNumber.Contains(idnumber)) &&
(source.NationalID == null || source.NationalID.Contains(NationalID)) &&
(source.Tel == null || source.Tel.Contains(Tel)) &&
(source.Address == null || source.Address.Contains(Address)) &&
(source.Description == null || source.Description.Contains(Description)) &&
(CaseNumber == null || source.CaseNumber == (CaseNumber)) &&
(Type == "" || source.Type == (Type)) &&
(source.CaseName == null || source.CaseName.Contains(Casename)) &&
(Condition == null || source.Condition == Condition) &&
(source.AccountNumber == null || source.AccountNumber.Contains(AccountNumber)) &&
(Edeafrom == null || Edeato == null || Edeafrom <= source.Edea && source.Edea <= Edeato) &&
(Momtazfrom == null || Momtazto == null || Momtazfrom <= source.Momtaz && source.Momtaz <= Momtazto) &&
(Tempfrom == null || Tempto == null || Tempfrom <= source.Temp && source.Temp <= Tempto) &&
(Finalfrom == null || Finalto == null || Finalfrom <= source.Final && source.Final <= Finalto) &&
(Paid == null || source.Paid == Paid)
select source;
توی یه سری از فیلدها کاربر میتونه بازه مورد نظرشو وارد کنه مثلا : مقدار Final بین 100 تا 1000
حالا سناریو اینجوریه که اگه کاربر یکی از فیلدهای بازه رو وارد کرد مثلا : Final بزرگتر از 100 ، بصورت خودکار کلیه مقادیر بزرگتر از 100 رو برگردونه یعنی در واقع بیاد بصورت داینامیک شرط select رو تغییر بده جوری که نیاز به وارد کردن مقدار انتهایی بازه نباشه
کسی میتونه رهنمایی کنه؟