امکان جستجو چند فیلد از جدول مثال در جدولی
string name
int serial no
int code
string city
این فیلد ها وجود دارد میخواهیم در جستجو هم بتوانیم یکبار name و یکبار code یا فیلد دیگر را جستجو کنیم .
این کد هست ولی فقط یک فیلد سرچ میکند.
public async Task<IActionResult> Index(string searchString)
{
var movies = from m in _context.Movie
select m;
if (!String.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
return View(await movies.ToListAsync());
}
ظاهرا شما قصد دارید یک جست و جوی ترکیبی از چند فیلد با استفاده از دستورات Entity Framewok رو ایجاد کنید. برای این منظور لینک زیر رو مطالعه کنید. به صورت کامل و با مثال این کار مرحله به مرحله انجام شده.
با And و or شرط های مختلفی در کوئری بزارید. در کوئری زیر من از or استفاده کردم( واسه کار شما هم or متاسب هست)
movies = movies.Where(
s => s.Title.Contains(searchString)
|| s.Name.Contains(searchString)
|| s.Code.Contains(Convert.ToInt32(searchString)
|| s.Serial_No.Contains(Convert.ToInt32(searchString)
));
اگر هم میخوای هر کدوم جداگونه جستجو بشن، باید کنار فیلد جستجو یه گزینه دیگه بزاری که مشخص بشه توی کدوم فیلد قراره سرچ انجام بشه و توی کدهات شرط بزاری اگه فلان فیلد بود، فلان کوئری اجرا بشه.
مشکل این کد برای جستجو کجاست و از این قسمت ایراد میگیره var movies = from m in _iuw.NewsRepositoryUW
select m;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using newsSite90tv.Models;
using newsSite90tv.Models.UnitOfWork;
using newsSite90tv.Models.ViewModels;
using newsSite90tv.Services;
namespace newsSite90tv.Areas.AdminPanel.Controllers
{
[Area("AdminPanel")]
public class NewsController : Controller
{
private readonly IUnitOfWork _iuw;
private readonly IUploadfile _upload;
private readonly UserManager<ApplicationUsers> _userManager;
private object _context;
private string movieGenre;
public NewsController(IUnitOfWork iuw, IUploadfile upload, UserManager<ApplicationUsers> userManager)
{
_iuw = iuw;
_upload = upload;
_userManager = userManager;
}
public async Task<IActionResult> Index(string News, string searchString)
{
// Use LINQ to get list of genres.
IQueryable<string> genreQuery = from m in _iuw.NewsRepositoryUW
orderby m.Title
select m.Title;
var movies = from m in _iuw.NewsRepositoryUW
select m;
if (!string.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
if (!string.IsNullOrEmpty(movieGenre))
{
movies = movies.Where(x => x.Genre == movieGenre);
}
var movieGenreVM = new PrintViewModel
{
Title = new SelectList(await genreQuery.Distinct().ToListAsync()),
Movies = await movies.ToListAsync()
};
return View(movieGenreVM);
}
[HttpGet]
public IActionResult Index(int page = 1, string newssearch = null)
{
if (newssearch != null)
{
int paresh = (page - 1) * 8;
//تعداد کل ردیف ها
int totalCount = _iuw.NewsRepositoryUW.Get(n => n.Title.Contains(newssearch)).Count();
ViewBag.PageID = page;
double remain = totalCount % 8;
if (remain == 0)
{
ViewBag.PageCount = totalCount / 8;
}
else
{
ViewBag.PageCount = (totalCount / 8) + 1;
}
ViewBag.ViewTitle = "لیست اخبار";
ViewBag.searchString = newssearch;
var model = _iuw.NewsRepositoryUW.Get
(u => u.UserID == _userManager.GetUserId(User) && u.Title.Contains(newssearch), null, "tblCategory").Skip(paresh).Take(8);
return View(model);
}
else
{
int paresh = (page - 1) * 8;
//تعداد کل ردیف ها
int totalCount = _iuw.NewsRepositoryUW.Get().Count();
ViewBag.PageID = page;
double remain = totalCount % 8;
if (remain == 0)
{
ViewBag.PageCount = totalCount / 8;
}
else
{
ViewBag.PageCount = (totalCount / 8) + 1;
}
ViewBag.ViewTitle = "لیست اخبار";
var model = _iuw.NewsRepositoryUW.Get
(u => u.UserID == _userManager.GetUserId(User), null, "tblCategory").Skip(paresh).Take(8);
return View(model);
}
}
}
}
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
112
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
216
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
397
- پاسخ :
2
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
112
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|