2013-04-21 59 views
3

我使用.NET 4.5和EF 5與代碼優先的方法,現在我需要實現全文搜索。 我已經讀了很多關於它,到目前爲止我的結論是:實體框架5,代碼優先,全文搜索,但通過CreateQuery IQueryable?

  • 存儲過程,也不表值函數不能使用代碼首先映射。

  • 我仍然可以使用動態SQL

    dbContext.Database.SqlQuery <電影>(SQL參數)

給他們打電話但這返回IEnumerable和我想的IQueryable,使我可以在從數據庫服務器獲取數據之前做更多的過濾。我知道我可以將這些參數發送給Db函數,但我不希望這樣。

  • 我已經發現,能夠滿足我的需求是從IObjectContextAdapter的createQuery功能,看起來像這樣(選擇一切只爲測試):

    IQueryable的<電影>結果=((IObjectContextAdapter)的DbContext) .ObjectContext.CreateQuery <Movie>(「SELECT * FROM Movie」);

  • 然而執行該拋出異常」 ‘System.Data.EntitySqlException了未處理的HResult = -2146232006 消息=查詢語法無效。近期‘*’,線1,塔9’

所以問題是:

  • 爲什麼我得到這個例外,可以將其固定

  • 如果不是有沒有用代碼首先沒有辦法做到這一點返回FTS? IQueryable的?

+0

剛剛更新的答案-a-代碼優先模型](HTTP://計算器。COM /問題/ 18746127/A-組合的,全文搜索上帶有一個代碼優先模型/ 20744678#20744678) – borisdj 2013-12-23 13:45:31

回答