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