如果我使用以下代码将产品选择到类名产品中,我怎样才能在不将类添加到产品类的情况下添加Where子句enabled = true?
List<Products> lp = db.products.Select(product => new Products
{
Name = product.name,
Description = product.description,
Category = product.Category
}).ToList();
添加 .Where(x =&gt; x.enabled == true)不起作用,因为 enabled 不是Products类的一部分,只是产品表。
答案 0 :(得分:4)
List<Products> lp = db.products
.Where(p => p.enabled)
.Select(product => new Products
{
Name = product.name,
Description = product.description,
Category = product.Category
}).ToList();
这也是一个很好的练习建议,我以单数形式命名该课程,Product
。
答案 1 :(得分:4)
我假设您尝试过滤产品列表而不是表格。所以你必须先加Where
。这样做的好处是可以在数据库中而不是在内存中进行过滤。
List<Products> lp = db.products
.Where(p => p.enabled)
.Select(product => new Products
{
Name = product.name,
Description = product.description,
Category = product.Category
}).ToList();
旁注:您应该遵循.NET命名约定。例如,使用pascal case属性或类名。一个类通常应该是单数,如果你想要多个类型使用List<Product>
。
答案 2 :(得分:2)
List<Products> lp = db.products
.Where(x => x.enabled==true)
.Select(product => new Products
{
Name = product.name,
Description = product.description,
Category = product.Category
}).ToList();
答案 3 :(得分:1)
List<Products> lp = db.products.Where(product => product.enabled).
Select(product => new Products
{
Name = product.name,
Description = product.description,
Category = product.Category
}).ToList();
答案 4 :(得分:0)
var filter1 = Enumerable.Range(0, 50).Where(c => c % 2 == 0).Select(c => c).ToList();
Console.WriteLine(filter1[3]);
filter1.Insert(4, 13);
foreach (var v in filter1)
{
Console.WriteLine(v);
}