Я хочу присоединиться и отобразить столбцы "ProductId, Количество, UnitPrice, Discount & Total" из таблиц tblOrder, tblCustomer, tblProduct, где OrderNo = GivenId.
OrderNo передается черезtextbox. Вот как это должно быть
База данных
Таблица заказов
public partial class tblOrder
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public tblOrder()
{
this.tblProducts = new HashSet<tblProduct>();
}
[Key]
public int OrderNo { get; set; }
public Nullable<int> Quantity { get; set; }
public Nullable<double> Discount { get; set; }
public Nullable<double> Total { get; set; }
public Nullable<double> SubTotal { get; set; }
public Nullable<double> DiscountTotal { get; set; }
public Nullable<double> Tax { get; set; }
public Nullable<double> NetTotal { get; set; }
public int CustomerCode { get; set; }
public virtual tblCustomer tblCustomer { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<tblProduct> tblProducts { get; set; }
}
Таблица продуктов
public partial class tblProduct
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public tblProduct()
{
this.tblOrders = new HashSet<tblOrder>();
}
[Key]
public int ProductId { get; set; }
public string UnitPrice { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<tblOrder> tblOrders { get; set; }
}
Таблица клиентов
public partial class tblCustomer
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public tblCustomer()
{
this.tblOrders = new HashSet<tblOrder>();
}
[Key]
public int CustomerCode { get; set; }
public string CustomerName { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<tblOrder> tblOrders { get; set; }
}
Это созданная мною ViewModel
public class OrderCustomerProductViewModel
{
public OrderCustomerProductViewModel() { }
public OrderCustomerProductViewModel(tblOrder orderow, tblCustomer customerow, tblProduct productrow)
{
OrderNo = orderow.OrderNo;
CustomerName = customerow.CustomerName;
ProductId = productrow.ProductId;
Quantity = orderow.Quantity;
UnitPrice = productrow.UnitPrice;
Discount = orderow.Discount;
Total = orderow.Total;
}
public int OrderNo { get; set; }
public string CustomerName { get; set; }
public int ProductId { get; set; }
public Nullable<int> Quantity { get; set; }
public string UnitPrice { get; set; }
public Nullable<double> Discount { get; set; }
public Nullable<double> Total { get; set; }
}
Я попытался отправить все данные для просмотра, используя список следующим образом, но были некоторые ошибки.Там написано
ICollection не содержит определения для ProductId и UnitPrice
Пожалуйста, помогите мне исправить эту ошибку.Заранее спасибо
public ActionResult Index(int id)
{
var results = (db.tblOrders.Where(l => l.OrderNo == id).Include(c => c.tblCustomer).Include(p => p.tblProducts)
.Select(v => new OrderCustomerProductViewModel
{
CustomerName = v.tblCustomer.CustomerName,
ProductId = v.tblProducts.ProductId,
Quantity = v.Quantity,
UnitPrice = v.tblProducts.UnitPrice,
Discount = v.Discount,
Total = v.Total,
})).ToList();
return View(results);
}
!Я попробовал, как сказал [Jaggan_j], но это не сработало.[Jaggan_j] Пожалуйста, помогите мне 3