0

我在数据库中有产品。产品名称为“ WINNER ”。

如果我添加名为“ Winner ”的新产品,结果为空。

我如何将WINNERWinner匹配为相同?

public ActionResult AddProduct(MyModel model)
{

var Result = context.Product.Where(s => s.ProductName == model.NewProductName).FirstOrDefault();

return view();
}

任何帮助将不胜感激。

4

5 回答 5

2
public ActionResult AddProduct(MyModel model)
{
var Result = context.Product.Where(s => s.ProductName.ToUpper() ==  model.NewProductName.ToUpper()).FirstOrDefault();
return view();
}
于 2013-10-25T10:45:10.307 回答
1

比较时对两个产品名称使用ToLower() :

var Result = context.Product
                    .Where(s => s.ProductName.ToLower() == model.NewProductName.ToLower()).FirstOrDefault();
于 2013-10-25T10:46:32.240 回答
0

您可以使用Equals以下StringComparison类型:

var Result = context.Product.FirstOrDefault(s => s.ProductName.Equals(model.NewProductName, StringComparison.InvariantCultureIgnoreCase));

我还合并了Where()with FirstOrDefault()

有关字符串比较的更多信息,请参阅这篇文章

于 2013-10-25T11:17:07.637 回答
0

关于什么

var Result = context.Product.Where(s => s.ProductName.ToUpper() == model.NewProductName.ToUpper()).FirstOrDefault();
于 2013-10-25T10:46:17.203 回答
0

不幸的是,在 Linq-to-SQL 中没有匹配不区分大小写字符串的方法,因此您需要将两个字符串转换为相同的大小写:

var Result = context.Product.Where(s => 
    // Make sure both sides are non-null for comparison
    s.ProductName != null && model.NewProductName != null &&
    // Convert both strings to same case
    s.ProductName.ToLower() == model.NewProductName.ToLower()).FirstOrDefault();
于 2013-10-25T10:46:58.413 回答