2015-10-29 185 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」操作,因爲這將具有線性(或更差)的性能 - 如果集合包含許多元素,則插入帶有索引的臨時表並進行連接可能會一個選項。 –

回答

相關問題