بررسی مقدار پارمتر null در Where در LINQ
سلام شرمنده دوست مخواستم ببینم چطوری در LINQ وقتی که یک ور مینویسم مثل مثل زیر اگه شرط دوم مقداری انتخاب نشد کوئری ما همه رکورد هار نشون بده
var tt = RepositoryService._repository.FindAll<detailMelkFo rModels>().Where(x => x.MelkFor.Archive == 1 && x.MelkFor.MelkType == TypeProperty.Text && x.MelkFor.State == SelectState.Text
).Select(x => new
{
_OwnerID = x.Customer.Id,
x.Customer.name,
x.Customer.mobile,
x.Customer.mobilem,
x.Customer.phone,
}
در این کد ممکن SelectState.Text نال باشه پس باید همه استان هار را نشون بده
البته روش کد اتصال به دیتا بیس NHibernate می باشد
نقل قول: برسی مقدار پارمتر null در Where در LINQ
هر دو حالت null یا غیر اونو چک کنید و در شرط بیارید(ابتدا باید null و خالی بودن چک بشه)
//...
.Where(x => x.MelkFor.Archive == 1 && x.MelkFor.MelkType == TypeProperty.Text
&& (string.IsNullOrEmpty(SelectState.Text) || x.MelkFor.State == SelectState.Text) )
//...
نقل قول: بررسی مقدار پارمتر null در Where در LINQ
ممنون که جواب دادید کد فوق یک مشکل حل کرد و جواب داد
در همین شرط اگه بخوایم هم نال بودن برسی بشه که همرو بیار هم کلمه نامشخص که باز همون عملکرد نال باشه چه تغیری نیاز ؟
و اگره فرار باشه چند استان انتخاب کنیم که معلوم نیست تعداد انتخاب شرط به چه صورت نوشته میشه
نقل قول: بررسی مقدار پارمتر null در Where در LINQ
نقل قول:
نوشته شده توسط
Helpco
ممنون که جواب دادید کد فوق یک مشکل حل کرد و جواب داد
در همین شرط اگه بخوایم هم نال بودن برسی بشه که همرو بیار هم کلمه نامشخص که باز همون عملکرد نال باشه چه تغیری نیاز ؟
و اگره فرار باشه چند استان انتخاب کنیم که معلوم نیست تعداد انتخاب شرط به چه صورت نوشته میشه
منظورتون از سوال اول، یعنی عبارت "نامشخص" اگر انتخاب شد ، همه رو لود کند؟ در اینصورت باید به همون صورت یک مقایسه به شرط اضافه کنید(به صورت OR || به همون صورت که خالی بودن چک شده)
برای انتخاب چند آیتم و دخیل کردن اونها در شرط، میتونید یک لیست از آیتمهای انتخاب شده کاربر بسازید و از متد Contains استفاده و آیتمهایی را انتخاب کنید که استان شان در این لیست هست.
نقل قول: بررسی مقدار پارمتر null در Where در LINQ
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
منظورتون از سوال اول، یعنی عبارت "نامشخص" اگر انتخاب شد ، همه رو لود کند؟ در اینصورت باید به همون صورت یک مقایسه به شرط اضافه کنید(به صورت OR || به همون صورت که خالی بودن چک شده)
برای این مورد انجام دادم ولی همه رو نشون نمیده میشه کد بهم بدید
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
برای انتخاب چند آیتم و دخیل کردن اونها در شرط، میتونید یک لیست از آیتمهای انتخاب شده کاربر بسازید و از متد Contains استفاده و آیتمهایی را انتخاب کنید که استان شان در این لیست هست.
ممکن بیشتر برام توضیح بدید؟
نقل قول: بررسی مقدار پارمتر null در Where در LINQ
.Where(x => x.MelkFor.Archive == 1 &&
x.MelkFor.MelkType == TypeProperty.Text &&
(string.IsNullOrEmpty(SelectState.Text) ||
SelectState.Text == "نامشخص" ||
requestedStates.Contains(x.MelkFor.State)
)
)
requestedStates لیستی هست که استانهای انتخابی کاربر رو بهش اضافه کردید.
نقل قول: بررسی مقدار پارمتر null در Where در LINQ
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
.Where(x => x.MelkFor.Archive == 1 &&
x.MelkFor.MelkType == TypeProperty.Text &&
(string.IsNullOrEmpty(SelectState.Text) ||
SelectState.Text == "نامشخص" ||
requestedStates.Contains(x.MelkFor.State)
)
)
requestedStates لیستی هست که استانهای انتخابی کاربر رو بهش اضافه کردید.
سلام من یک لیست درست کردم
List<String> frt= new List<string>();
و داخل شرطم اینو نوشتم
&& frt.Contains(x.MelkFor.chalich)
اما شرط اعمال نمیشه یعنی ایتم لیست در chalich جستجو نمیشه
نقل قول: بررسی مقدار پارمتر null در Where در LINQ
کد کاملتر بزارید. اینکه لیست رو چجور پر میکنید و کوئری کامل.
نقل قول: بررسی مقدار پارمتر null در Where در LINQ
سلام منم زیاد با این نال بودن مشکل داشتم اما چیزی که مشکل رو قطعی حل میکنه وقتی اطلاعات رو میخونید از FirstOrDefault استفاده کنید ک اگ نال باشه خودش مقدار پیشفرض میده (0).
یا اینکه اگه شرط میزارید حتما شرطتتون به این صورت باشه if(data !=null) {}...
نقل قول: بررسی مقدار پارمتر null در Where در LINQ
نقل قول:
نوشته شده توسط
barnamenevisjavan
سلام منم زیاد با این نال بودن مشکل داشتم اما چیزی که مشکل رو قطعی حل میکنه وقتی اطلاعات رو میخونید از FirstOrDefault استفاده کنید ک اگ نال باشه خودش مقدار پیشفرض میده (0).
یا اینکه اگه شرط میزارید حتما شرطتتون به این صورت باشه if(data !=null) {}...
سلام ممکن یک نمونه کد بزارید؟