我想通過自己的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
方法,但在執行期間收到警告,表達式無法被翻譯,並且會在代碼中執行,而不是在數據庫中執行(我不記得確切的消息,我將編輯只要我回到我的開發機器上)。如果必須的話,我可以忍受,但在這種情況下知道如何讓數據庫完成這項工作會很好。可能嗎?
請參閱(http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their [56, 「問題包括‘標籤’,在他們的頭銜?」] - 標題),其中的共識是「不,他們不應該」!此外,您可能需要重新考慮「Contains」操作,因爲這將具有線性(或更差)的性能 - 如果集合包含許多元素,則插入帶有索引的臨時表並進行連接可能會一個選項。 –