0

我写了服务类。

 public partial class ProductService : IProductService
    {
        #region Constants

        private const string PRODUCTVARIANTPRICERANGE_PATTERN_KEY = "Nop.productVariantPriceRange.";
        #endregion

        #region Fields


        private readonly IRepository<ProductVariantPriceRange> _productVariantPriceRangeRepository;

        public ProductService(ICacheManager cacheManager,

            IRepository<ProductVariantPriceRange> productVariantPriceRangeRepository,
            )
        {

            this._productVariantPriceRangeRepository = productVariantPriceRangeRepository;

        }

        #endregion

然后写一个函数

 public virtual void CheckProductVariantPriceRange(int productVariantPriceRangeId)
        {
            bool flage=true;
            var query = _productVariantPriceRangeRepository.Table;

               query = query.Where(m => m.ProductVariantId.Contains(productVariantPriceRangeId));


            var ProductVariantPriceRangeS = query.ToList();
            if (ProductVariantPriceRangeS.Count == 0)
            {
                flage = false;
            }

        }

但它发生了流动错误..

  1. Instance argument: cannot convert from 'int' to 'System.Linq.IQueryable<int>'

  2. 'int' 不包含 'Contains' 的定义,并且最佳扩展方法重载 'System.Linq.Queryable.Contains(System.Linq.IQueryable, TSource)' 有一些无效参数

我不知道这是什么错误。我该如何解决这个问题..请帮助

4

2 回答 2

1

ProductVariantId属性不是一个集合,它是一个单一的值。您应该将每条记录的属性值与所需值进行比较:

query = query.Where(m => m.ProductVariantId == productVariantPriceRangeId);
于 2012-09-19T06:44:44.980 回答
1

删除Contains方法调用。换句话说,替换:

query = query.Where(m => 
    m.ProductVariantId.Contains(productVariantPriceRangeId));

query = query.Where(m => m.ProductVariantId == productVariantPriceRangeId);
于 2012-09-19T06:44:45.427 回答