2012-09-19 47 views
0

我寫了服務類。錯誤:實例參數:無法從'int'轉換爲'System.Linq.IQueryable <int>'

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. '詮釋' 不包含一個定義爲「包含'和最佳擴展方法過載 'System.L inq.Queryable.Contains(System.Linq.IQueryable,TSource)'有一些無效參數

我不知道這個錯誤是什麼。 如何解決此問題.. Plz幫助

+1

這是什麼線怎麼辦? :'query = query.Where(m => m.ProductVariantId.Contains(productVariantPriceRangeId));' – wasyl

回答

1

ProductVariantId屬性不是集合,它是單個值。你應該在屬性比較值的每個記錄所需的值:

query = query.Where(m => m.ProductVariantId == productVariantPriceRangeId); 
+0

謝謝。它正在工作.. – user1348351

1

取出Contains方法調用。換句話說,替換:

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

query = query.Where(m => m.ProductVariantId == productVariantPriceRangeId); 
+0

謝謝。這是工作 – user1348351

相關問題