我写过服务类。
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;
}
}
但它发生了流动的错误..
Instance argument: cannot convert from 'int' to 'System.Linq.IQueryable<int>'
'int'不包含'Contains'的定义和最佳扩展方法重载 'System.Linq.Queryable.Contains(System.Linq.IQueryable,TSource)'有一些无效的参数
我不知道这是什么错误。 我该怎么解决这个问题.. Plz帮助
答案 0 :(得分:1)
ProductVariantId
属性不是集合,它是单个值。您应该将每个记录的属性值与期望值进行比较:
query = query.Where(m => m.ProductVariantId == productVariantPriceRangeId);
答案 1 :(得分:1)
删除Contains
方法调用。换句话说,替换:
query = query.Where(m =>
m.ProductVariantId.Contains(productVariantPriceRangeId));
与
query = query.Where(m => m.ProductVariantId == productVariantPriceRangeId);