سلام . من دو جدول دارم به نام های product و product Detail که میخواهم این دو جدول با هم جوین کنم و میخواهم بعد از جوین آن سطرهایی که productId یکسان دارند تنها یک سطر از آنها را نمایش بدهد.
کلاس Product :
public class Product
{
[Key]
public int ProductId { get; set; }
[Required]
public int Category_code { get; set; }
public Category Category { get; set; }
[Required]
public int SubCategory_code { get; set; }
public SubCategory SubCategory { get; set; }
[Required]
[Display(Name = "نام کالا")]
public string Name { get; set; }
[Required]
[Display(Name = "کد کالا")]
public string Code_product { get; set; }
[Required]
[Display(Name = "توضیحات جریی")]
public string Description_Detail { get; set; }
[Required]
[Display(Name = "توضیحات کلی")]
public string Description_General { get; set; }
[Required]
[Display(Name = "قیمت")]
public double price { get; set; }
}
کلاس ProductDetails :
public class ProductDetail
{
[Key]
public int ProductDetail_Id { get; set; }
[Required]
public int ProductId { get; set; }
public Product Product { get; set; }
[Required]
[Display(Name = "رنگ")]
public string color { get; set; }
[Required]
[Display(Name = "تعداد")]
public int count { get; set; }
[Required]
[Display(Name = "عکس")]
public string image { get; set; }
}
این هم کد جوینی است که نوشتم :
var product = (from p in _context.ProductRepositoryUW.Get()
join pd in _context.ProductDetailRepositoryUW.Get()
on p.ProductId equals pd.ProductId
select new ProductListViewModel()
{
ProductId = p.ProductId,
ProductDetail_Id = pd.ProductDetail_Id,
Name = p.Name,
image = pd.image,
price = p.price
}).ToList();
در لینک زیر نحوه جوین جداول در انتیتی فریم ورک توضیح داده شده.
جوین جداول و نمایش داده های دلخواه در انتیتی فریم ورک
public class ProductDetail
{
[Key]
public int ProductDetail_Id { get; set; }
[Required]
[Display(Name = "رنگ")]
public string color { get; set; }
[Required]
[Display(Name = "تعداد")]
public int count { get; set; }
[Required]
[Display(Name = "عکس")]
public string image { get; set; }
[Required]
public int ProductId { get; set; }
[ForeignKey("ProductID")]
public virtual Product Product { get; set; }
}
خب حالا می تونید کوئری جوین خودتون رو به صورت زیر بنویسید :
var productquery = (from p in _context.Product join pd in _context.ProductDetail
on p.ProductId equals pd.ProductId
select new ProductListViewModel()
{
///...
}).ToList();
خب توسط دستورات می تونید به راحتی جوین رو انجام بدید. شما میتونید از انواع Join در انتینتی فریم ورک استفاده کنید. مثلا Left Join یا Right Join یا ... (انواع Join و آشنایی با آنها)
نحوه Left Join در انتیتی فریم ورک
تاریخ :
1403/10/22
- ساعت :
12:29:00 PM
- بازدید :
84
- پاسخ :
1
|
تاریخ :
1399/09/20
- ساعت :
01:21:00 PM
- بازدید :
6646
- پاسخ :
1
|
تاریخ :
1403/11/02
- ساعت :
08:17:00 PM
- بازدید :
46
- پاسخ :
0
|
تاریخ :
1398/10/19
- ساعت :
02:01:00 PM
- بازدید :
3088
- پاسخ :
2
|
تاریخ :
1398/10/26
- ساعت :
10:24:00 PM
- بازدید :
2121
- پاسخ :
1
|
تاریخ :
1403/10/30
- ساعت :
12:33:00 AM
- بازدید :
66
- پاسخ :
1
|
تاریخ :
1403/10/30
- ساعت :
12:40:00 AM
- بازدید :
59
- پاسخ :
1
|
تاریخ :
1403/10/30
- ساعت :
12:39:00 AM
- بازدید :
83
- پاسخ :
1
|
تاریخ :
1398/10/19
- ساعت :
02:54:00 PM
- بازدید :
2791
- پاسخ :
3
|
تاریخ :
1403/10/25
- ساعت :
12:39:00 AM
- بازدید :
141
- پاسخ :
1
|
تاریخ :
1403/11/03
- ساعت :
07:34:00 PM
- بازدید :
54
- پاسخ :
0
|
تاریخ :
1399/12/20
- ساعت :
10:32:00 AM
- بازدید :
2518
- پاسخ :
1
|
تاریخ :
1398/08/09
- ساعت :
07:44:00 PM
- بازدید :
4856
- پاسخ :
1
|
تاریخ :
1399/09/20
- ساعت :
01:30:00 PM
- بازدید :
2573
- پاسخ :
1
|
تاریخ :
1403/11/03
- ساعت :
07:21:00 PM
- بازدید :
40
- پاسخ :
0
|
تاریخ :
1403/10/22
- ساعت :
12:29:00 PM
- بازدید :
84
- پاسخ :
1
|
تاریخ :
1399/09/20
- ساعت :
01:21:00 PM
- بازدید :
6646
- پاسخ :
1
|
تاریخ :
1403/11/02
- ساعت :
08:17:00 PM
- بازدید :
46
- پاسخ :
0
|
تاریخ :
1398/10/15
- ساعت :
08:02:00 PM
- بازدید :
2729
- پاسخ :
1
|
تاریخ :
1398/10/19
- ساعت :
02:01:00 PM
- بازدید :
3088
- پاسخ :
2
|