Невозможно сравнить два свойства - PullRequest
0 голосов
/ 07 мая 2020

Привет, у меня есть метод, в котором я нахожу объект с linq

 Item c = lineCollection.items
    .Where(p => p.item
        .GetType()
        .GetProperty("Product_ID")
        .GetValue(p.item) == product
            .GetType()
            .GetProperty("Product_ID")
            .GetValue(product)
    )
    .FirstOrDefault()

Проблема в том, что значение p=>p.item.(...) всегда равно 0, но если я вызываю это значение из представления, оно равно 1, и оно хорошо. В чем причина? Product_ID объекта продукта верен, но я видел, что я даже не могу вызвать свойства p => p.item to a List<PropertyInfo>

Вот еще код:

 private CartLine lineCollection = new CartLine();

public void AddItem(Object product, int quantity)
{
    Item c = lineCollection.items.Where(p => p.item.GetType().GetProperty("Product_ID").GetValue(p.item) == product.GetType().GetProperty("Product_ID").GetValue(product)).FirstOrDefault();
    if(c == null)
    {
        lineCollection.items.Add(new Item { item = product, Quantity = quantity });
    }
    else
    {
        lineCollection.items
        .Where(p => p.item.GetType().GetProperties().FirstOrDefault().GetValue(p.item) == 
               product.GetType().GetProperties().FirstOrDefault().GetValue(product) && p.item.GetType() == product.GetType())
               .FirstOrDefault().Quantity += quantity;
    }
}
public CartLine Lines
{
    get { return lineCollection; }
}

И код в поле зрения, где я могу найти свойство Product_ID

 @model KomShop.Web.Models.CartViewModel
 @foreach (var line in Model.Cart.Lines.items)
{
     @line.item.GetType().GetProperty("Product_ID").GetValue(line.item)
}

Наконец, CartViewModel

 public class CartViewModel
 {
     public Cart Cart { get; set; }
     public string ReturnUrl { get; set; }
 }   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...