2015-10-29 207 views
1

我想通过自己的Name财产,它忽略的情况下,重要的是在数据库中找到实体(Tag S)(当database搜索和数据库中包含名为Database一个标签,那应该返回一个)。现在,我的代码如下所示:比较字符串忽略大小写

public IEnumerable<db.Tag> FindByNames(IEnumerable<string> tagNames) 
{ 
    return this.DatabaseContext.Tags 
     .Where(tag => tagNames.Contains(tag.Name)); 
} 

显然,这个区分大小写。我曾尝试提供StringComparer.OrdinalIgnoreCase作为比较器与Contains方法,但在执行期间收到警告,表达式无法被翻译,并且会在代码中执行,而不是在数据库中执行(我不记得确切的消息,我将编辑只要我回到我的开发机器上)。如果必须的话,我可以忍受,但在这种情况下知道如何让数据库完成这项工作会很好。可能吗?

+0

请参阅(http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their [56, “问题包括‘标签’,在他们的头衔?”] - 标题),其中的共识是“不,他们不应该”!此外,您可能需要重新考虑“Contains”操作,因为这将具有线性(或更差)的性能 - 如果集合包含许多元素,则插入带有索引的临时表并进行连接可能会一个选项。 –

回答

相关问题