在仍使用ORM的同时调用特定于sql的运算符/函数(全文搜索)

时间:2017-10-03 14:15:55

标签: c# postgresql linq linq-to-sql

我的数据库是postgress,我已经将它脚手架并正确映射到MVC。现在我遇到了一个问题,因为现在我需要一种方法来调用全文搜索,就像在这个简单的查询中一样

Select * from fl_file storage where fl_file.text @@ 'dog cat rain';

我还没有找到一种方法来编写一个LINQ查询,该查询将在上面的sql字符串中进行翻译,除了使用一些LINQ扩展方法来调用只执行全文搜索的存储过程。

我发现这种方法"有点"笨拙,我非常害羞,如果我这样做,我只是重新发明一个轮子(可能是正方形),所以解决这个问题的任何帮助都会被贬低

1 个答案:

答案 0 :(得分:0)

我找到了这样做的方法,虽然我首先不知道如何将LINQ与纯SQL结合起来。在.net核心中它的Microsoft.EntityFrameworkCore.Relational程序集中的FromSql

String str = "dog cat rain";
_context.FlFile.FromSql(@"select * from fl_file where fts @@ plainto_tsquery({0})", str)