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)」に無効な引数がいくつかあります

このエラーが何であるかわかりません。どうすればこれを解決できますか..Plzヘルプ

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 に答える