0
我使用EF與Oracle數據庫連接,寫LINQ查詢這樣如何編寫LINQ生成SQL字符包含關鍵字
var keyword = this.Keywords.ToLower();
var filteredItems = from item in active_items
where item.Name.Contains(keyword)
select item;
從LINQ生成的SQL利用像和關鍵字的包裹% %符號。
e.g. WHERE "EXTENT1"."NAME" LIKE '%keyword%'
這似乎不錯,但我需要在SQL儘量使用「包含」關鍵字,並需要在SQL要像
e.g. WHERE CONTAINS(NAME,'keyword') > 0
如何實現這一目標?
感謝丹尼爾:請您詳細說明第3個選項,因爲我可能無法實現選項1或2.如何使用像INSTR這樣的功能? – RRR
Rahul,您必須添加對System.Data.Entity的引用並在您的查詢中調用EntityFunction.Contains。現在我沒有一臺Oracle機器來完成一個完整的示例,但您可以在這裏看到一個示例:http://msdn.microsoft.com/en-us/library/dd456873(v=vs.110).aspx 。我認爲你需要用於.NET的Oracle數據提供程序:http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html – daniel
我和第二個選項一起去了。然而,從EF調用Oracle中的存儲過程並不像在Microsoft SQL服務器中那麼簡單,而是通過我的方式實現。感謝您的建議。 – RRR