我的 SQL Server 中有一个标量值函数,它根据文本条目(varchar(max))返回一个 ID (int),该函数用于返回某个序列号的产品 SKU ID)。
这是 SQL 函数。
CREATE function [dbo].[fGetPSKU]
(
@SerialNumber varchar(MAX)
)
returns int
begin
/*
local variables
*/
declare cmodel cursor local for
select PSKU.ProductSKUID, PSKU.ProductSKUValadationStart, PSKU.ProductSKUValadationEnd, PSKU.ProductSKUValadationMask, PSKU.PruductSKUValadationLength
from SCM.dbo.ProductSKU PSKU
where PSKU.ProductSKUActive = 0
and PSKU.ProductSKURequiresValadation = 1
order by PSKU.ProductSKUValadationEnd - PSKU.ProductSKUValadationStart desc, len(PSKU.ProductSKUValadationMask) desc, PSKU.ProductSKUDateCreated desc, PSKU.ProductSKUID desc
declare @mid int
declare @mstart int
declare @mend int
declare @masks varchar(max)
declare @lengths varchar(255)
declare @found int
declare @model int
/*
main code
*/
set @found = 0
set @model = -1
open cmodel
fetch next from cmodel into @mid, @mstart, @mend, @masks, @lengths
while @@fetch_status = 0 and @found = 0
begin
if exists
(
select null
from SCM..fParseDelimited(@masks, ',')
where ids = substring(@SerialNumber, @mstart, @mend - @mstart + 1)
)
and exists
(
select null
from SCM..fParseDelimited(@lengths, ',')
where ids = convert(varchar, len(@SerialNumber))
)
begin
set @found = 1
set @model = @mid
end
fetch next from cmodel into @mid, @mstart, @mend, @masks, @lengths
end
close cmodel
return @model
end
在我的实体框架上导入它后,我会收到以下错误:当我尝试创建函数导入时,无法为可组合函数创建函数导入。我已经阅读了这篇类似的帖子 ,但不清楚在 EF 中创建的位置和内容以成功执行该功能。
任何建议/帮助将不胜感激。