解决方法
EF7 EF Core在sqlite的引擎盖下使用了
Microsoft.Data.Sqlite.此程序包在UWP上加载的sqlite 3版本支持FTS.
一般说明:以下适用于所有平台,而不仅仅是UWP.
默认情况下,EF Core(从RC2开始)会创建常规表,但您可以手动使其使用FTS.
>迁移/表创建
默认情况下,迁移将创建常规表.要使用FTS,您需要改为制作FTS表.您可以通过手动编写迁移来实现此目的
migrationBuilder.sql(@"CREATE VIRTUAL TABLE enrondata1 USING fts3(content TEXT);") // FTS table migrationBuilder.sql(@"CREATE TABLE enrondata2(content TEXT);"); // ordinary table
如果您不使用迁移,则仍需要显式提供此sql.而不是使用context.Database.EnsureCreate(),调用context.Database.ExecutesqlCommand(string sql)来创建表.
>查询
默认情况下,EF Core在构造查询时将使用“LIKE”.要利用FTS,您需要使用“MATCH”.
context.EnronData2.Fromsql(@"SELECT count(*) FROM enrondata1 WHERE content MATCH 'linux';"); // uses FTS search context.EnronData1.Where(e => e.Content.Contains("linux")); // uses regular,slow search
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。