我正在尝试将 Hangfire JobId (和其他属性)添加到我的所有作业中,而不必将其添加到每个作业方法中。
在 Startup.cs 中,我添加了一个有前途的过滤器解决方案,但是我不知道如何将其应用到我的测试方法中,我什至不确定这是否是正确的方法。
启动.cs
...
GlobalJobFilters.Filters.Add(new JobLoggerAttribute());
Run Code Online (Sandbox Code Playgroud)
JobLoggerAttribute类 - 来自此处: 链接
我的任务是将 JobId 放置在列单元格当前为空白的位置,而无需手动将其添加到我的测试方法中:

Program.cs(全局定义的Logger):
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.WriteTo.Elasticsearch....
.Enrich.FromLogContext()
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
因为我还想检索方法名称等。我添加了这个类来调用我的工作中的 Here 方法。
LoggerExtensions.cs:
public static class LoggerExtensions
{
public static ILogger Here(this ILogger logger,
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0
)
{
return logger
.ForContext("MemberName", memberName)
.ForContext("FilePath", sourceFilePath)
.ForContext("LineNumber", sourceLineNumber)
;
}
}
Run Code Online (Sandbox Code Playgroud)
运行测试任务:
public void RunTestTask(PerformContext context)
{
// instead of …Run Code Online (Sandbox Code Playgroud) 我想从下面的图像创建以下输出:
输入数据来自视图(Select * from test).我们的目标是让这里的所有数据progress列包含文本tbd和counter数字为1.
在声明的情况下可以解决这个问题吗?
由于sqlfiddle不在这里工作的架构:
CREATE TABLE test
(
[ID] [int] NOT NULL,
[Counter] [int] NOT NULL,
[Name] nvarchar(200) NULL,
[Progress] nvarchar(200) NOT NULL
)
INSERT INTO test
VALUES (1, 1, 'userA', 'tbd'),
(1, 2, 'userB', 'done'),
(1, 3, 'userC', 'tbd'),
(2, 1, 'userB', 'done'),
(2, 5, 'userA', 'tbd'),
(3, 1, 'userD', 'tbd'),
(3, 2, 'userA', 'done'),
(3, 7, 'userC', 'tbd'),
(3, 11, 'userB', 'tbd')
Run Code Online (Sandbox Code Playgroud)
我无法让它发挥作用.
希望你能帮助我.
非常感谢.
我很想从下面的示例小提琴中得到以下结果.
结果:
来源表:
我们的想法是RecordID通过查找预算和预测ID 的最大数量来创建单个行,以创建其他列(如果不存在该预算或预测ID的值,则将列单元格保留为空).
我尝试了PIVOT功能,但无法得到一个不错的结果.
更新:请参阅下图,我试图解释预期的输出:
用语言:对于属于RecordID的每个 BudgetID,为BDate,Result(Percentage*BAmount of Records表)和Status创建单独的列.
在我的示例中,RecordID 55在Budget表中有两个条目 - 因此需要2x3列来显示此RecordID 的单行中每个日期,结果和状态.
由于RecordID 77在Budget表中具有最多(三个)条目,因此它用于在所有行上创建3x3列.
预测也是如此.
我希望你能帮助我.
谢谢.
我从PowerShell查询中获得以下输出.我无权访问服务器来运行查询,所以我没有选择来影响输出格式.
例:
Name : folderC
FullName : D:\folderA\folderB\folderC
Length :
CreationTime : 2/8/2014 11:12:58 AM
LastAccessTime: 2/8/2014 11:12:58 AM
Name : filename.txt
FullName : D:\folderA\folderB\filename.txt
Length : 71560192
CreationTime : 11/25/2015 3:10:43 PM
LastAccessTime: 11/25/2015 3:10:43 PM
Run Code Online (Sandbox Code Playgroud)
如何格式化上面的内容以获得更多可用的内容,可能就像表格格式一样:
Name|FullName|Length|CreationTime|LastAccessTime
Run Code Online (Sandbox Code Playgroud)