11

SQL Server 2008 には全文検索が組み込まれているため、これを使用して Web サイトの検索を強化したいと考えています。ORM に ADO.NET エンティティ フレームワークを使用することも考えていますが、Linq to ADO.NET エンティティ フレームワークを使用して全文検索 (FTS) を行うにはどうすればよいのでしょうか?

ADO.NET エンティティ フレームワークでのサポートはありますか、それとも全文検索の述語を使用する関数を作成する方法を使用して立ち往生していますか?

4

2 に答える 2

12

Entity Framework は、使用可能な SQL 機能のサブセットのみをサポートします (一部は、さまざまなプロバイダーで互換性を維持するためです)。ただし、LINQ-to-SQL (UDF など、より多くの SQL-Server 固有の構造をサポートする) でさえ、フルテキストの AFAIK をサポートしていません。

ストアド プロシージャ/udf を使用する必要があると思います。メタデータレイヤーがはるかに強力であり、dbサーバーで構成できるため、UDFアプローチが推奨されます-ただし、Entity FrameworkはUDFのようではありません(または前回チェックしたときはそうではありませんでした);-pだから、あなたは持っているかもしれませんストアド プロシージャを使用します。

于 2009-02-11T05:03:10.523 に答える
10

EF4 の次のようなコードを見てきました。

var query = context.ExecuteStoreQuery<Person>(
        "SELECT * FROM People WHERE FREETEXT(*,{0})", 
        searchText
    ).AsQueryable();

これは、ストアド プロシージャまたは UDP を作成するよりも簡単な場合があります。

于 2011-05-25T19:09:54.447 に答える