دسته بندی ها
10:58 1401/03/28

استفاده از عملگر Or بین دو ستون در یک جدول در Entity Framework

مشخصات سوال کننده :
کاربر : Rouhbakhsh     امتیاز کاربر : 1     رتبه کاربر : 152
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2045
هوش مصنوعی

پاسخ هوش مصنوعی

برای استفاده از عملگر "or" در Entity Framework، می توانید از علامت "|" برای ترکیب شرایط استفاده کنید. در اینجا، کد شما به شکل زیر تغییر خواهد کرد:


public List<MyLetterViewModel> Letter(string userId)
{
   var Query = (from SL in _context.SentLetters_Tbl
                where SL.userId_sender == userId || SL.userId_Reciever == userId
                select new MyLetterViewModel()
                {
                  // پارامترها
                }).AsEnumerable();
            return Query.ToList();
}

با این تغییر، کویری که شما نوشته اید حالا سطرهایی را برمی گرداند که در آن ها کاربر هم فرستنده باشد و هم گیرنده.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 15:47 1401/03/28

درود بر شما

شما در واقع 2 تا ستون به نام های UserID_Sender و UserID_reciever دارید. هدفتون اینه کوئری بنویسید که در خروجی به شما نتیجه زیر رو نمایش بده :

  • همه رکوردهایی که UserID_Sender برابر با UserID کاربر لاگین شده هست.
  • همه رکوردهایی که UserID_reciever برابر با UserID کاربر لاگین شده هست.

خب در اینجا میتونید از عملگر OR در انتیتی فریم ورک استفاده کنید. به صورت زیر

public List<MyLetterViewModel> Letter(string userId)
{
   var Query = (from SL in _context.SentLetters_Tbl
                where (SL.userId_sender == userId || SL.userId_reciever == userId)
                select new MyLetterViewModel()
                {
                  // پارامترها
                }).AsEnumerable();
   return Query.ToList();
}

همونطوری که می بینید از || استفاده شده. دقت کنید که شرط رو داخل پرانتز گذاشتیم تا یک خروجی داشته باشه و هر کدوم که صحیح بود در خروجی نمایش داده بشه. لطفا کوئری بالا رو تست کنید اگر مشکلی داشت همینجا بگید.

به این پاسخ امتیاز بدهید    1
امتیاز: 1664 رتبه: 1
1 نظر
Rouhbakhsh : سلام سپاس از پاسخگویی جنابعالی با همین کدی که شما فرمودید مشکل حل شد

امتیاز کاربر : 1   رتبه کاربر : 152   تاریخ ثبت : 08:54 1401/03/29
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود