دسته بندی ها
13:05 1400/06/12
جوین دو جدول در انتیتی فریم ورک و نمایش بر اساس ستون مشترک
سلام . من دو جدول دارم به نام های 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();
ویرایش شده در شنبه 13 شهریور 1400 ساعت 00:07:09
مشخصات سوال کننده :
کاربر : MinaNikbakht
امتیاز کاربر : −1
رتبه کاربر : 7055
به این سوال امتیاز بدهید
0
تعداد بازدید این سوال : 3225
پاسخ دهنده : saedbfd
00:17 1400/06/13
در لینک زیر نحوه جوین جداول در انتیتی فریم ورک توضیح داده شده.
جوین جداول و نمایش داده های دلخواه در انتیتی فریم ورک
- شما یک جدول به نام Product دارید که کلید اصلی این جدول ProductID هست.
- یک جدول هم به نام ProductDetails دارید که فیلد ProductID از جدول Product در اون کلید خارجی می خواهید استفاده کنید. خب اولین کاری که باید انجام می دادید و انجام نشده این هست که باید فیلد ProductID رو به عنوان کلید خارجی در این جدول معرفی کنید. به کد زیر دقت کنید این کار انجام شده براتون.
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 در انتیتی فریم ورک
1 نظر
olfat80r :
احسنت ، کاملا درسته ایشون اتصال و ارتباط دو جدول را تعیین نکرده ست و پس از اینکار مشکل به نظرم حل خواهد شد. ♥
امتیاز کاربر : 5
رتبه کاربر : 110
تاریخ ثبت : 04:11 1400/07/28
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.
 
ورود