0
我想在USQL中的TVF表值函数中使用函数后面的代码。这可能吗 ?USQL在表值函数中使用代码
我不想注册程序集,因为函数对于TVF非常具体,它所做的只是输入字符串的一些格式。
代码后面
using System;
namespace Transform
{
public class Formatter
{
private static DateTime DefaultDateTime = DateTime.Parse("1/1/2004");
public static DateTime ToDateTime(string date, string format)
{
...
}
public static DateTime? ToNullableDateTime(string date, string format)
{
...
}
}
}
表值函数使用
SELECT
rec.id,
rec.name,
Transform.Formatter.ToDateTime(rec.effectiveDate, "yyyyMMdd"),
Transform.Formatter.ToNullableDateTime(rec.expirationDate, "yyyyMMdd")
功能正确编译。但是当我运行它时,它会给出一个运行时错误,说它不能识别令牌Transform.
其中定义的代码的名称空间
当前我正在使用解决方法代替后面的代码。但是,如果我能够理解如何使用它,函数将更加可读。
当您在VS项目中使用代码隐藏文件时,该工具会自动在您的临时名称下为您注册程序集。在底层系统中,没有办法访问用户定义的代码而无需将其注册为程序集。 VS简化仅适用于在解决方案中使用相同名称配对的USQL文件和usql.cs文件。您的代码隐藏文件中的函数是否与定义了TVF的usql文件相关联? – OmidA
是的,我在VS2015中使用USQL项目。我以为一样,但即使在本地调用函数也给我同样的问题 – frictionlesspulley
如果你可以在Microsoft.com的bigdatatools发邮件给我,也许我们可以更快地调试你的情况。 – OmidA