有关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
)