با سلام دوستان
من میتونم در یک پروژه از چند تکنولوژی استفاده کنم به عنوان مثال انتیتی و لینک استفاده نمایم
لطفا اگه آموزش یا سایتی که کدهای ترکیبی سرچ را داشته باشه معرفی کنید...
و روش استفاده از تکنولوژی لینک بشه سرچ (منظورم کدهاس) ترکیبی انجام داد بفرمایید اگه نمونه کدی داری ممنون میشم بزارید
مثال: من میخوام سرچ را بر اساس استان> شهرستان و نمرات دانش آموزان از تاریخ تا تاریخ فلان داشته باشم .این سرچ میخوام کدش نمیدونم چطور بنویسم از انتیتی یا لینک فرقی نمیکنه فقط کسی از دوستان اگر میتونه کمک کنه ممنون میشم .
ایجاد جستجوی ترکیبی توسط انتیتی فریم ورک خیلی ساده هست. توی این آموزش این کار انجام شده. نمونه اش رو براتون قرار می دم.
خب شما اگر میخواید بین استان، شهرستان و نمرات دانش آموزان از تاریخ تا تاریخ جستجو انجام بدید اول باید یک کوئری رو بنویسید که شامل همه این فیلدها باشه. ممکنه نیاز داشته باشید که Join انجام بدید بین جداولتون.
در کوئری زیر فرض کردیم که 4 جدول داریم :
public List<StudentViewModel> StudentList(int ProvienceID, int CityID, DateTime fromdate, DateTime todate)
{
var Query = (from s in _context.StudentTbl
join sc in _context.ScoreTbl on s.studentId equals sc.studentId
join p in _context.ProvienceTbl on s.studentId equals p.studentId
join c in _context.CityTbl on p.provienceid equals c.provienceid
where SL.userId_reciever == userId_reciever
select new StudentViewModel()
{
cityName = c.CityName,
cityid = c.cityid,
provienceName = p.provienceName,
provienceid = p.provienceid,
studentName = s.studentName,
studentid = s.studentid,
score = sc.score,
scoreDate = sc.scoreDate
}).AsEnumerable();
}
خب در بالا 4 جدول لا هم جوین شدن و نتیجه اونها در یک ViewModel به نام StudentViewModel ذخیره شده. بنابراین شما نیاز دارید که یک ویومدل با این نام و با فیلدهایی که در کوئری بالا استفاده شده هم داشته باشید:
public class StudentViewModel
{
public string cityName {get; set;}
public int cityid {get; set;}
public string provienceName {get; set;}
public int provienceid {get; set;}
public string studentName {get; set;}
public int studentid {get; set;}
public int score {get; set;}
public DateTime scoreDate {get; set;}
}
پس تا اینجای کار هم کوئری رو داریم که با انتیتی فریم ورک نوشته شده و هم ویومدل را داریم. خب حالا به راحتی میتونیم در نتیجه کوئری جستجو انجام بدیم. در واقع باید جستجو را دقیقا در همان تابع StudentList بنویسیم. بنابراین تابع ما در نهایت به صورت زیر تبدیل می شود.
public List<StudentViewModel> StudentList(int ProvienceID, int CityID, DateTime fromdate, DateTime todate)
{
var Query = (from s in _context.StudentTbl
join sc in _context.ScoreTbl on s.studentId equals sc.studentId
join p in _context.ProvienceTbl on s.studentId equals p.studentId
join c in _context.CityTbl on p.provienceid equals c.provienceid
where SL.userId_reciever == userId_reciever
select new StudentViewModel()
{
cityName = c.CityName,
cityid = c.cityid,
provienceName = p.provienceName,
provienceid = p.provienceid,
studentName = s.studentName,
studentid = s.studentid,
score = sc.score,
scoreDate = sc.scoreDate
}).AsEnumerable();
if (CityID != 0)
{
Query = Query.where(q => q.CityID == CityID);
}
if (ProvienceID != 0)
{
Query = Query.where(q => q.ProvienceID == ProvienceID );
}
if (fromdate != null)
{
Query = Query.Where(q => q.scoreDate.Date >= fromdate);
}
if (todate != null)
{
Query = Query.Where(q => q.scoreDate.Date <= todate);
}
return Query.ToList();
}
در نهایت بعد از فیلتر اطلاعات خروجی در return تابع برگشت داده می شود.
سلام دوست عزیز ممنون که وقت گذاشتی و جواب دادید...
من چند بار امتحان کردم نشد.. یعنی من زیاد مسلط نیستم توضیحات شما کامله..
اگه ممکنه ایمیل بزارید که من پروژه بفرستم خدمتتون و هزینش هم پرداخت میکنم هر چی حق شما باشه.
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|
تاریخ :
1403/07/13
- ساعت :
12:06:00 PM
- بازدید :
350
- پاسخ :
1
|
تاریخ :
1403/06/24
- ساعت :
08:52:00 PM
- بازدید :
319
- پاسخ :
1
|
تاریخ :
1398/09/14
- ساعت :
01:58:00 PM
- بازدید :
4270
- پاسخ :
1
|
تاریخ :
1403/05/16
- ساعت :
05:43:00 AM
- بازدید :
662
- پاسخ :
0
|
تاریخ :
1398/09/05
- ساعت :
06:04:00 PM
- بازدید :
3174
- پاسخ :
2
|
تاریخ :
1398/09/08
- ساعت :
11:38:00 PM
- بازدید :
3251
- پاسخ :
1
|
تاریخ :
1403/04/12
- ساعت :
07:27:00 PM
- بازدید :
658
- پاسخ :
0
|
تاریخ :
1403/01/29
- ساعت :
08:08:00 AM
- بازدید :
688
- پاسخ :
4
|
تاریخ :
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
- بازدید :
111
- پاسخ :
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
|