2010-04-30 31 views
2

我正在使用Microsoft Entity模型框架來訪問我的數據庫。我遇到問題,而我使用此執行查詢命令執行Sql原始查詢。讓我知道我怎麼解決它。如何在Microsoft Entity Model Framework中執行Sql Raw Query

svdc.CreateQuery<VideoMasterTable>(
    "select * from videomastertable WHERE FREETEXT(*, '"+keyword+"')" 
    ).ToList(); 

由於事先

凱納

+0

問題是什麼? – 2010-04-30 12:54:42

+4

請不要通過字符串連接創建你的sql命令。這將導致SQL注入漏洞。使用參數化接口傳遞任何參數。 – 2010-11-14 21:33:04

回答

4

CreateQuery需要ESQL,不是T-SQL。在EF 4(僅限於)中,您可以改爲使用ExecuteStoreQuery

+0

嗨,感謝您的更新。但我試着用Executestorequery,但我找不到解決方案。請我可以知道我怎麼可以使用這個查詢或代碼示例。 – kamal 2010-05-03 08:37:04

+1

http://blogs.msdn.com/alexj/archive/2009/11/07/tip-41-how-to-execute-t-sql-directly-against-the-database.aspx – 2010-05-03 12:44:24

+0

context.executestorequery (查詢).. – dnndeveloper 2010-11-18 12:51:11

2

使用CreateQuery方法創建的ObjectQuery將被轉換爲實體sql(ESQL)。實體SQL不是T-SQL。它具有不同的語法並使用實體操作。實體框架目前沒有用於全文搜索的方法。您可以創建此類方法或使用存儲過程並使用Entity Framework調用它們。要創建您的方法,請嘗試this article。使用帶有EF檢查的存儲過程this article

相關問題