gpt4 book ai didi

c# - EF6 : Full-text Search with Database First Approach

转载 作者:太空狗 更新时间:2023-10-29 23:29:11 26 4
gpt4 key购买 nike

我找到了这个 link通过 linq 进行全文搜索。但是,该代码似乎针对数据库优先方法。如何使其与数据库优先方法一起工作?

相关部分代码:

public class NoteMap : EntityTypeConfiguration<Note>
{
public NoteMap()
{
// Primary Key
HasKey(t => t.Id);
}
}
public class MyContext : DbContext
{
static MyContext()
{
DbInterception.Add(new FtsInterceptor());
}
public MyContext(string nameOrConnectionString) : base(nameOrConnectionString)
{
}
public DbSet<Note> Notes { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new NoteMap());
}
}

如上所示,函数 OnModelCreating 仅在 Code First Approach 中调用。我想知道需要更改什么才能使链接中的代码适用于 Database First 方法

最佳答案

我建议采用不同的方法。在 SQL Server 上使用全文搜索创建表值函数,并使用参数从 Entity Framework 调用它。我的项目中的简化示例在两个表中搜索全文并且可以从 EF 轻松调用:

CREATE FUNCTION [dbo].[GetRealtyMapFulltext]
(@criteria nvarchar(4000))
RETURNS TABLE
AS
RETURN (SELECT
realty.Id AS realtyId,
( COALESCE(ftR.Rank,0) + COALESCE(ftObec.Rank,0)) AS FtRank
FROM realty
LEFT JOIN ruian_obec ON realty.obecId = ruian_obec.obec_kod
Left JOIN CONTAINSTABLE(Realty, *, @criteria) ftR ON realty.Id = ftR.[Key]
Left JOIN CONTAINSTABLE(ruian_obec, *, @criteria) ftObec ON realty.obecId = ftObec.[Key]
AND ( COALESCE(ftR.Rank,0) + COALESCE(ftObec.Rank,0) > 0)

关于c# - EF6 : Full-text Search with Database First Approach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40706261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com