使用 smo 创建返回 XML 的用户定义函数

Creating userdefined function returning XML using smo

我正在尝试创建一个返回 XML 的 UDF

Server s = new Server();
Microsoft.SqlServer.Management.Smo.Database db = s.Databases["EDI"];
UserDefinedFunction udf = new UserDefinedFunction(db, "fxx");
udf.Schema = "dbo";
udf.TextMode = false;
udf.FunctionType = UserDefinedFunctionType.Scalar;
udf.ImplementationType = ImplementationType.TransactSql;

udf.DataType.SqlDataType = SqlDataType.Xml;
udf.DataType = DataType.Xml("Xml");        
udf.TextBody = "begin \r\n\t return '<root>test</root>' End;";
try {
    udf.Create();
} catch (Exception ex) {

    Debug.WriteLine(ex.Message);
}

并抛出异常

Collection specified does not exist in metadata : 'Xml'

我做错了什么?

udf.DataType=DataType.Xml("") 解决了问题..