Как конвертировать целое число в тип модели? - PullRequest
0 голосов
/ 21 февраля 2019

Здесь я пытаюсь показать все товары в корзине вместе с соответствующими товарами на складе из таблицы Product столбец InStock.
Чтобы получить номер для каждого товара в корзине, я использовал foreach для каждого товара и пробовалдобавить номер в корзину.

Теперь есть проблема в строке cart.Add(item.InStock); внутри foreach, говорящей "Cannot convert from int? to eMedicine.Model.ViewModel.CartVM".

Ниже мой код

 public List<CartVM> ShoppingCartOrderList()
    {
        var cart = Session["cart"] as List<CartVM> ?? new List<CartVM>();
        var stockList = uow.Repository<Product>().GetAll().ToList();
        foreach (var item in stockList)
        {
            cart.Add(item.InStock); //error is in this line saying "Cannot convert from int? to eMedicine.Model.ViewModel.CartVM"
        }                       
        return cart;
    }



Ниже приведен модельный класс

public class CartVM
{
    public int ProductId { get; set; }
    public string ProductName { get; set; }
    public int Quantity { get; set; }
    public decimal? ProductPrice { get; set; }
    public decimal? Total { get { return Quantity * ProductPrice; } }
    public int? Instock { get; set; }
    public string ImageName { get; set; }
    public string ProdcutManufacturer { get; set; }
    public string ProductDescription { get; set; }
    public string ProductComposition { get; set; }
    public string ProductCode { get; set; }

    public List<ProductGallery> ProductGalleries;
}

public partial class Product
{
    public int PId { get; set; }
    public string PName { get; set; }
    public Nullable<decimal> Price { get; set; }
    public Nullable<int> IsPrescriptionRequired { get; set; }
    public Nullable<int> InStock { get; set; }
    public string PImage { get; set; }
    public Nullable<int> IsNew { get; set; }
    public string ProductDescription { get; set; }
    public string Manufacturer { get; set; }
    public string ProductCode { get; set; }
    public string ProductComposition { get; set; }
}

1 Ответ

0 голосов
/ 21 февраля 2019

Поскольку cart содержит экземпляр List<CartVM>, вы должны использовать new CarVM() конструктор без параметров, чтобы назначить Instock свойство, которое имеет тип Nullable<int>, например:

var cart = Session["cart"] as List<CartVM> ?? new List<CartVM>();
var stockList = uow.Repository<Product>().GetAll().ToList(); // the type is List<Product>

foreach (var item in stockList)
{
    cart.Add(new CartVM() 
             {
                 // other properties
                 Instock = item.InStock 
             });
}

return cart;

Обратите внимание, что вы не можетеприсвойте item непосредственно Add методу List<CartVM>, поскольку item имеет тип List<Product>, поэтому вам нужно использовать экземпляр CartVM и назначать его свойства оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...