Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何比较lambda表达式中的字符串_C#_String_Lambda_Comparison - Fatal编程技术网

C# 如何比较lambda表达式中的字符串

C# 如何比较lambda表达式中的字符串,c#,string,lambda,comparison,C#,String,Lambda,Comparison,我有一个问题,我将感谢任何帮助 背景-我有一个保存字符串的数据库(即-StackOverFlow),我需要将传入的值与该字符串进行比较,并使其区分大小写 现在我有一个到数据库的连接(使用EF 4)、一个IRepo接口(我用来访问表)和一个FindAllMatching方法,该方法返回一个IQueryable并接受一个表达式参数 回购类别: public class TableRepo : IRepo<table>{ private EF4Entity _dc = new EF4E

我有一个问题,我将感谢任何帮助

背景-我有一个保存字符串的数据库(即-StackOverFlow),我需要将传入的值与该字符串进行比较,并使其区分大小写

现在我有一个到数据库的连接(使用EF 4)、一个
IRepo
接口(我用来访问表)和一个
FindAllMatching
方法,该方法返回一个
IQueryable
并接受一个
表达式
参数

回购类别:

public class TableRepo : IRepo<table>{
  private EF4Entity _dc = new EF4Entity();
  public IQueryable<table> FindAllMatching(Expression<Func<table, bool>> expression)
  {
    return _dc.table.Where(expression);
  }
}
现在,当我传入一个字符串,该字符串在各个方面都与表中的内容相匹配,但在case(stackoverflow而不是stackoverflow)中,
returnValue
实际上从表中返回一行。如果传入的值与数据库表中包含的值不完全匹配,我希望它返回null或零计数

我尝试过使用
.Equals(在前端输入StringFromTextBoxOnFrontEnd,StringComparison.OrdinalIgnoreCase)
和所有其他
字符串比较
值,但没有任何值比较大小写

如果您需要更多信息,请随时询问

谢谢,


Tim

我想您会发现这不是代码的问题,而是数据库的问题。我认为您使用的是某种SQL Server风格。默认情况下,安装SQL Server时,所有文本查询都不区分大小写


您可能希望看到这一点以获得可能的答案。

Linq to Sql使用数据库比较规则

您需要添加一个额外的IEnumerable。在结尾处对结果进行局部筛选

var returnValue = (ItableDB.FindAllMatching(x => x.ColumnInTableThatHoldsString == enteredStringFromTextBoxOnFrontEnd) as IEnumerble<TableRepo>).Where(x => x.ColumnInTableThatHoldsString == enteredStringFromTextBoxOnFrontEnd);
var returnValue=(ItableDB.FindAllMatching(x=>x.ColumnTableThatHoldsString==enteredStringFromTextBoxOnFrontEnd)作为IEnumerble)。其中(x=>x.ColumnTableThatHoldsString==enteredStringFromTextBoxOnFrontEnd);
var returnValue = (ItableDB.FindAllMatching(x => x.ColumnInTableThatHoldsString == enteredStringFromTextBoxOnFrontEnd) as IEnumerble<TableRepo>).Where(x => x.ColumnInTableThatHoldsString == enteredStringFromTextBoxOnFrontEnd);