Metoda GetPrice () nuk mund të përkthehet në një shprehje dyqani

Unë kam një metodë të klasës:

public static class ProductExtensions {

    public static decimal GetPrice(this Product product, Guid rateId) {

        return product.Prices
            .Where(p => p.Rate.RateId == rateId)
            .Select(b => b.UnitPrice)
            .DefaultIfEmpty(product.UnitPrice)
            .First();
    }
 }

dhe vlerësimi i një shprehje

        decimal? total = 
            (from cartItems in storeDB.Carts
            where cartItems.CartId == shoppingCartId
            select (int?)cartItems.Count * cartItems.Product.GetPrice(store.RateId))
            .Sum();

hedh një përjashtim:

LINQ tek njësitë nuk njohin metodën 'System.Decimal GetPrice (System.Guid)' metodë, dhe kjo metodë nuk mund të përkthehet në një shprehje dyqan.

Unë jam duke përdorur këtë kod shumë të njëjtë në vende të tjera dhe punon shumë mirë:

        // Get the price for given rate
        decimal price = product.GetPrice(rate.RateId);

Çdo ide si ta zgjidhim atë?

6
задан abatishchev 19 June 2013 в 19:31
поделиться