我想在我的實體框架模型中導入SQL Server的CONTAINS()函數,以便我可以在我的LINQ查詢中使用它。導入SQL Server的CONTAINS()作爲模型定義函數
我已經加入這個我EDM:
<Function Name="FullTextSearch" ReturnType="Edm.Boolean">
<Parameter Name="Filter" Type="Edm.String" />
<DefiningExpression>
CONTAINS(*, Filter)
</DefiningExpression>
</Function>
放入創造我的方法存根:
[EdmFunction("MyModelNamespace", "FullTextSearch")]
public static bool FullTextSearch(string filter)
{
throw new NotSupportedException("This function is only for L2E query.");
}
我嘗試調用的函數是這樣的:
from product in Products
where MyModel.FullTextSearch("FORMSOF(INFLECTIONAL, robe)")
select product
以下異常提出:
The query syntax is not valid. Near term '*'
我意識到我定義的函數並沒有直接鏈接到被查詢的實體集,所以也可能是一個問題。
有什麼辦法可以解決這個問題嗎?
可能重複? http://stackoverflow.com/questions/224475/is-it-possible-to-use-full-text-search-fts-with-linq – Pondlife
這個問題的建議解決方案是導入一個表值函數,它適用於LINQ to SQL,但不適用於實體框架(當前) –