我有一个包含许多集合的表(@ t1).我想在@ t1中找到@ t2的完美匹配.
在此示例中,所需结果为1.
(Set 1匹配完美,set 2包含三个元素,而@ t2只包含两个元素,set 3包含的元素少于@ t2,set 4包含@ t2中不允许的NULL元素,set 5包含正确数量的元素但其中一个要素不相等.)
DECLARE @t1 TABLE (id INT, data INT);
DECLARE @t2 TABLE (data INT PRIMARY KEY);
INSERT INTO @t1 (id, data)
VALUES
(1, 1),
(1, 2),
(2, 1),
(2, 2),
(2, 3),
(3, 1),
(4, NULL),
(4, NULL),
(5, 1),
(5, 3);
INSERT @t2 (data)
VALUES
(1),
(2);
Run Code Online (Sandbox Code Playgroud)
我有一个查询可能正在完成工作,但它看起来有点可怜我也.
WITH t1 AS
(
SELECT id, data
FROM @t1
WHERE data IS NOT NULL
),
t1_count AS …Run Code Online (Sandbox Code Playgroud) 这个jquery移动表正在进行淘汰.
<table data-role="table" id="report-table" class="ui-body-a ui-shadow ui-responsive table-stripe"
data-column-btn-theme="a" data-column-btn-text="Spalten..." data-column-popup-theme="a" data-mode="columntoggle"">
<thead>
<tr data-bind="foreach: columns">
<th data-bind="text: $data.Caption, attr: { 'data-priority': 1 + Math.floor($index() / 4) }"></th>
</tr>
</thead>
<tbody data-bind="foreach: { data: rows, afterRender: tableRowAfterRender }">
<tr data-bind="foreach: $parent.columns">
<!-- ko template: { name: $data.template } -->
<!-- /ko -->
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
为了让"columntoggle"真正起作用,我目前正在使用"aferRender"事件:
self.tableRowAfterRender = function (element, data) {
// Skip unless data.Items()[i] is not the last element in the rows collections
for (var i = 0; …Run Code Online (Sandbox Code Playgroud) 我从供应商处获得了 (OpenApi 3.0.1) 中的对象规范:
"ExampleTO" : {
"codeValidFrom" : {
"type" : "string",
"format" : "date"
}
}
Run Code Online (Sandbox Code Playgroud)
NSwag 在 C# 客户端中生成此属性(我认为正确):
[Newtonsoft.Json.JsonProperty("codeValidFrom",
Required = Newtonsoft.Json.Required.DisallowNull,
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
[Newtonsoft.Json.JsonConverter(typeof(DateFormatConverter))]
public System.DateTimeOffset CodeValidFrom { get; set; }
Run Code Online (Sandbox Code Playgroud)
问题:“codeValidFrom”中有空值。我认为规范应该是这样的:
"ExampleTO" : {
"codeValidFrom" : {
"type" : "string",
"format" : "date",
"nullable: "true"
}
}
Run Code Online (Sandbox Code Playgroud)
供应商不想进行此添加,声称架构是生成的并且不能轻易更改。
有没有办法让 NSwag 客户端仍然可以使用此功能?理想情况下,我将使所有字符串属性都可为空。
我目前正在将此输出模板与 Serilog 一起使用:
"outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] [{MachineName}] {Message:lj}{NewLine}{Exception}"
Run Code Online (Sandbox Code Playgroud)
我想添加在声明我Microsoft.Extensions.Logging.ILogger注入的记录器时指定的类,即如果我声明,ILogger<MyType>那么我想MyType通过模板输出。
我知道我可以添加整个上下文,但我读到这会带来性能损失,所以目前我通过添加nameof(MyType)到每条消息来添加类 - 这是一团糟。
是否有丰富的内容或类似的东西可以使类型在模板中可用(或者只是在每个日志消息中添加该类型的前缀)?
编辑:
实际上没有太多代码,这就是我使用 dotnet-core WebApi 配置 Serilog 的方式:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.UseWindowsService()
.UseSerilog();
Run Code Online (Sandbox Code Playgroud)
这是我如何通过 IOC 使用记录器的示例:
private readonly ILogger<MyType> _logger;
public MyType(ILogger<MyType> logger)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
public void HelloLog()
{
_logger.LogInformation("hello");
}
// expected log output: "[MyType] hello"
Run Code Online (Sandbox Code Playgroud)
我从 Andy 的评论中了解到,我可以编写一个 LoggingProvider 并将其传递到采用提供程序集合的 UseSerilog 重载中。如果没有更容易的事情出现,我会研究这个问题。
我们正在使用带有SSDT的Visual Studio 2013主要用于版本化t-sql代码,因此sql正在开发服务器上开发,然后我们使用模式比较将脚本传输到visual studio(并检查Git).在部署之前(我们目前也使用模式比较)我们必须替换数据库和服务器引用(使用[$(数据库)]等).如果我们更改开发服务器中的代码并再次进行比较,则此类SQLCMD变量将再次丢失.(我希望模式比较足够聪明以保留SQLCMD变量,但我发现无法实现这一点).
合乎逻辑的步骤是从一开始就在visual studio中开发sql.但到目前为止,很难说服团队中的任何人这样做.一个人可以编写sql并在VS中执行它,没问题.也可以切换到SQLCMD模式并执行.但是当您在VS中创建例如一个视图时,您必须写下一个create语句,当然这可以执行一次,但在更改视图并再次执行create语句时会产生错误.
所以我的问题是,是否有人提供了一些关于如何在Visual Studio中进行数据库开发的基本技巧.我们能够获得数据库引用和所有这些,但不是开发过程.
在我目前的项目(由五个开发人员组成)中,所有开发人员都使用他们自己的TFS分支(按开发人员命名).他们会不时合并到主要开发部门.
每个开发人员使用分支的论点是:当他们在一个分支中工作时出错太多了.开发人员主要使用远程工作,但使用一个常见的TFS和AD帐户(VPN连接).
我想得到的意见是,这种合作是否被认为是良好的做法,在某些情况下是好的,或者由于某些原因只是明显的错误.