我有一个简单的数据库功能,预计两个字符串作为参数,并返回一个字符串。 我想与实体框架图本。 类似这样的问题 ,我创建了一个简单的函数头:
[DbFunction("dbo", "StripCharacters")]
public static string StripCharacters(string input, string pattern = "^A-Z0-9") => throw new NotSupportedException();
就像在链接后,我得到了同样的错误信息,当我尝试使用此方法在我的查询之一。 异常消息为:
方法
System.String StripCharacters(System.String, System.String)
在类型DE.ZA.TrailerLoadingAssistant.Web.Models.DatabaseEntities
不能被翻译成LINQ实体储存表达
await mapi.db.TrailerAutocompleteHelpers
.Where(t => t.SearchString.Contains(DatabaseEntities.StripCharacters(userInput, "^A-Z0-9")))
.ToListAsync();
这里的数据库功能:
CREATE FUNCTION [dbo].[StripCharacters]
(
@String NVARCHAR(MAX),
@MatchExpression VARCHAR(255)
)
RETURNS NVARCHAR(MAX) WITH SCHEMABINDING
AS
BEGIN
SET @MatchExpression = '%['+@MatchExpression+']%'
WHILE PatIndex(@MatchExpression, @String) > 0
SET @String = Stuff(@String, PatIndex(@MatchExpression, @String), 1, '')
RETURN @String
END
我怎么解决这个问题?