1
我正在開發一個.NET Framework 4.0和Entity Framework 6.1.3的C#庫。使用lambda表達式檢查表中是否存在產品
我有一個這個變量List<ProductViewModel> viewModel
。我想檢查產品表上是否存在該變量的一些產品。
ProductViewModel
聲明:
public class ProductViewModel
{
public string ProductCode { get; set; }
public string ProductDescription { get; set; }
}
我已經測試了這個謂詞:
Expression<Func<PRODUCTS, bool>> predicate =
p => (p.LAW == (byte)LawTypes.Korea) &&
!viewModel.Any(item => item.ProductCode == p.PRODUCT_CODE);
這一個:
Expression<Func<PRODUCTS, bool>> predicate =
p => (p.LAW == (byte)LawTypes.Korea) &&
!viewModel.Select(x => x.ProductCode).Contains(p.PRODUCT_CODE);
當我這樣做有兩個謂詞:
if (_dbSet.Where(predicate).Count() == 0)
我得到以下異常:
無法創建 類型的恆定值 'MyProject.Web.API.Models.ProductViewModel'。在此上下文中僅支持基本類型或枚舉類型。
PRODUCTS
是:
public class PRODUCTS
{
public int Id { get; set; }
public string PRODUCT_CODE { get; set; }
public string DESCRIPTION { get; set; }
public byte LAW { get; set; }
}
我怎樣才能解決這個問題?