【发布时间】:2011-07-06 14:06:23
【问题描述】:
我有一个问题希望得到任何帮助。
背景 - 我有一个包含字符串的数据库(即 StackOverFlow),我需要将传入的值与该字符串进行比较并使其区分大小写。
现在我有一个到数据库的连接(使用 EF 4)、一个 IRepo<T> 接口(我用来访问表)和一个返回 IQueryable<table> 并接受 @987654324 的 FindAllMatching 方法@参数。
回购类:
public class TableRepo : IRepo<table>{
private EF4Entity _dc = new EF4Entity();
public IQueryable<table> FindAllMatching(Expression<Func<table, bool>> expression)
{
return _dc.table.Where(expression);
}
}
调用代码:
public class CallingClass
{
public void CallingMethod(string enteredStringFromTextBoxOnFrontEnd)
{
var tableDB = new TableRepo();
var returnValue = tableDB.FindAllMatching(x => x.ColumnInTableThatHoldsString.CompareTo(enteredStringFromTextBoxOnFrontEnd) ==0);
}
}
现在,当我传入一个与表中的内容匹配的字符串时,但以防万一(stackoverflow 与 StackOverFlow 相对)returnValue 实际上会从表中返回一行。如果传入的值与数据库表中包含的值不完全匹配,我希望它返回 null 或计数为零。
我尝试过使用.Equals(enteredStringFromTextBoxOnFrontEnd, StringComparison.OrdinalIgnoreCase) 和所有其他StringComparison 值,但没有什么可以比较大小写。
如果您需要更多信息,请随时询问。
谢谢,
提姆
【问题讨论】:
标签: c# string lambda comparison