将sql用户定义的函数作为属性添加到dbml

时间:2012-08-22 16:16:18

标签: asp.net sql sql-server linq-to-sql

我在sql server中有一个用户定义的函数,它返回一个字符串。我想在linq to sql dbml文件中将此属性添加到我的类中。我的类代表sql server中的一个视图。 (注意,我不想将这个UDF添加到视图中)

我尝试手动创建属性,然后将源代码作为我的UDF在sql server中的名称。不喜欢这个和错误。

我正在做什么? 感谢

1 个答案:

答案 0 :(得分:2)

您只能使用FunctionAttribute属性将在类上定义的客户端方法映射到用户定义的函数。

但是你可以用属性

将你的函数包装在你的类中
CREATE FUNCTION Test(@string varchar(100))
RETURNS varchar(100)
AS
BEGIN
    RETURN "Test"
END

[Function(Name = "Test", IsComposable = true)]
[return: Parameter(DbType = "VarChar(100)")]

public string Test([Parameter(Name = "string",
    DbType = "VarChar(100)")] string @string)
{
    return ((string)(this.ExecuteMethodCall(this,
        ((MethodInfo)(MethodInfo.GetCurrentMethod())),
        @string).ReturnValue));
}