【发布时间】:2014-05-20 14:18:49
【问题描述】:
我正在尝试使用实体框架从其列表中搜索对象。
我有以下对象结构
public class Product
{
public int Id { get; set; }
public string ProductName { get; set; }
public double Size { get; set; }
}
然后我创建产品列表
private List<Product> AddProducts()
{
List<Product> ProductList = new List<Product>();
oProduct Product = new Product();
oProduct.Id = 1;
oInventory.ProductName = "Product1";
oProduct.Size = 25;
ProductList.Add(oProduct);
oProduct Product = new Product();
oProduct.Id = 2;
oInventory.ProductName = "Product2";
oProduct.Size = 25;
ProductList.Add(oProduct);
return ProductList;
}
现在,我正在尝试从上述列表形式的 ProductName 参数中搜索对象。
我使用了下面的代码。
public ActionResult Index(string productname = "", string size = "")
{
var oProdList = from ProdList in AddProducts() select oProdList;
oProdList = oProdList.Where(oProd => oProd.ProductName.ToUpper().Contains(ProductName.ToUpper().Trim())|| oProd.Size.ToString().ToUpper().Contains(size.ToUpper().Trim()));
ViewBag.ProductList = oProdList;
return View();
}
现在请检查下面的图片,我有产品列表,我正在尝试通过在文本框中输入 Product1 来查找它,并将尺寸文本框保留为空白。 现在,当我单击 submit 时,我将这两个变量传递给 Index 方法(上一个)进行搜索,但 LINQ 命令返回两条记录 Product1 和 Product 2 但它应该只返回一条记录
如何处理?
【问题讨论】:
标签: c# linq entity-framework-4 linq-to-entities