gpt4 book ai didi

sql - 将 SQL CONTAINS 包装为表达式?

转载 作者:行者123 更新时间:2023-12-01 04:05:25 25 4
gpt4 key购买 nike

我有个问题。我在 Asp.Net 上的一个站点上工作,该站点使用了一些 ORM。我需要使用几个 FullTextSearch 函数,例如包含。但是当我尝试用那个 ORM 生成它时,它会生成这样的 SQL 代码

    SELECT 
[Extent1].[ID] AS [ID],
[Extent1].[Name] AS [Name]
FROM [dbo].[SomeTable] AS [Extent1]
WHERE (Contains([Extent1].[Name], N'qq')) = 1

SQL 无法解析它,因为包含不返回位值。不幸的是,我无法修改 SQL 查询生成过程,但我可以修改其中的语句。

我的问题是 - 是否可以将 CONTAINS 函数的调用包装到其他东西?我试图创建另一个函数,它将选择包含,但它需要特定的表\列对象,我不想为每个表做一个函数..

编辑

我可以在 ORM 中修改该函数的结果类型。在之前的示例中,结果类型是 Bit。我可以将其更改为 int、nvarchar 等。但据我了解,SQL 中没有 bool 类型,我无法指定它。

最佳答案

你不能把它放在一个存储过程中,然后告诉你的 ORM 调用存储过程吗?那么您就不必担心您的 ORM 只能理解有效 T-SQL 的一个子集这一事实。

我不知道我是否相信需要新存储过程的论点是一个障碍。如果您必须在 ORM 代码中编写一个新的 CONTAINS 表达式,那么将该表达式包装在不同窗口中的 CREATE PROCEDURE 语句中有多大不同?如果您想纯粹在 ORM 中执行此操作,那么您将不得不向供应商施加压力,以加快步伐并开始更完整地覆盖他们应该完全支持的语言。

关于sql - 将 SQL CONTAINS 包装为表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9814087/

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