如何解决SQL 到 EF Core linq 查询FREETEXTTABLE、连接、排名
我刚开始使用 sql Server 自由文本索引。我编写了一个查询,希望将其转换为 EF Core Linq 查询。
如果可能的话,我不是(如果不是,我将创建一个存储过程),但理想情况下,我想在 C# 中构造它,因为其他一些查询会更多动态比这一个,而 id 而不是有多个存储过程。
这是查询:
declare @searchTerm varchar(50) = '16 Sorrento';
declare @postcode varchar(50) = 'CF10 4AR';
declare @language varchar(3) = 'ENG';
declare @offset int = 0;
declare @limit int = 100;
select
RankTotal = isnull(RankSAONDetails,0) + isnull(RankPAONDetails,0) +
isnull(RankStreet,0) + isnull(RankWard,0) +
isnull(RankPostcode,0),Id,UPRN,ParentUPRN,USRN,SAONDetails,PAONDetails,Street,Ward,PostTown,Postcode,Easting,northing,Usage,Language,LastUpdateDate,DateExtracted
from
LLPG
left join
(select Rank * 3.0 as RankSAONDetails,[KEY]
from freetexttable(LLPG,@searchTerm)) as k on k.[key]= LLPG.Id
left join
(select Rank * 4.0 as RankPAONDetails,@searchTerm)) as l on l.[key]= LLPG.Id
left join
(select Rank * 3.0 as RankStreet,@searchTerm)) as m on m.[key]= LLPG.Id
left join
(select Rank * 3.0 as RankWard,@searchTerm)) as w on w.[key]= LLPG.Id
left join
(select Rank * 10.0 as RankPostcode,@searchTerm)) as p on p.[key]= LLPG.Id
where
LLPG.Language = @language and
StatusCode = 1 and
LPIStatusCode = 1 and
Usage LIKE 'Res%' and
Replace(Postcode,' ','') = Replace(@postcode,'') and
(RankSAONDetails is not null or
RankPAONDetails is not null or
RankStreet is not null or
RankWard is not null or
RankPostcode is not null)
order by
RankTotal desc
offset @offset rows
fetch next @limit rows only
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。