iTheoChan
iTheoChan
2021-01-27 15:58

EFCore5.0+中怎么通过HasDbFunction映射含有表值参数的用户定义函数

  • asp.net
  • microsoft

有关EFCore中如何映射用户自定义函数的信息,官方文档中有详细说明:https://docs.microsoft.com/zh-cn/ef/core/querying/user-defined-function-mapping#mapping-a-queryable-function-to-a-table-valued-function

亲测上述方法可用。但是我的问题是这样的:

我有一个UDF(`UDF_Query`),要求传入一个用户定义类型,当我使用上述映射用户自定义函数方式进行映射时就失败了。有没有大佬能给出解决方案?不胜感激!

--UDF definition
CREATE FUNCTION UDF_Query(
	@args AS [UDTType] READONLY
)
RETURNS TABLE
AS RETURN (
SELECT * FROM dbo.SysDictionary s WHERE EXISTS (SELECT 1 FROM @args a WHERE a.Code=s.Code)
)

--UDTT definition
CREATE TYPE [dbo].[UDTType] AS TABLE(
	[Id] [varchar](50) NULL,
	[Code] [varchar](500) NULL
)

--SysDictionary definition
CREATE TABLE [dbo].[SysDictionary](
	[Id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
	[Module] [nvarchar](255) NOT NULL,
	[Code] [nvarchar](100) NOT NULL,
	[Name] [nvarchar](1000) NULL,
	[ParentCode] [nvarchar](100) NULL,
	[IsValid] [bit] NOT NULL
) 
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

0条回答

为你推荐

换一换