我尝试将一个布尔参数传递给控制台应用程序,并使用命令行解析器库处理该值.
[Option('c', "closeWindow", Required = true, HelpText = "Close the window.")]
public bool CloseWindow { get; set; }
Run Code Online (Sandbox Code Playgroud)
我试图将参数传递为
-c false
-c False
-c "false"
-...
Run Code Online (Sandbox Code Playgroud)
没有差异,每次尝试我得到"true"的价值.
任何人都可以告诉我如何传递参数来获取布尔false值?
为了避免可能的问题,有一个正确传递的字符串选项:
[Option('s', "system", Required = true, HelpText = "Any help text")]
public string System { get; set; }
Run Code Online (Sandbox Code Playgroud) 是否可以在 dockerfile 中运行 sqlcmd?
首先我创建一个图层
FROM microsoft/mssql-server-windows-developer:2017-latest
Run Code Online (Sandbox Code Playgroud)
之后我接受 eula 并设置 sa 密码,如下所示:
ENV ACCEPT_EULA=Y
ENV SA_PASSWORD=VerySecret!
Run Code Online (Sandbox Code Playgroud)
这样做之后,我尝试执行一个简单的示例查询:
RUN sqlcmd -S "localhost" -U "SA" -P "VerySecret!" -Q "select name from master.dbo.sysdatabases"
Run Code Online (Sandbox Code Playgroud)
不幸的是,docker build 命令中断并显示错误消息“Sqlcmd: 'name from master.dbo.sysdatabases': Unexpected argument. Enter '-?' 求助。”
难道我做错了什么?
我尝试通过调用存储过程来使用 EF Core 加载实体。实体通过流畅映射映射到表,该映射不包含存储过程选择的所有列。
在实体配置中将忽略不作为表列存在的选定字段,如下所示:
modelBuilder.Entity<CustomerLocationEntity>().Ignore(c => c.Latitude);
modelBuilder.Entity<CustomerLocationEntity>().Ignore(c => c.Longitude);
modelBuilder.Entity<CustomerLocationEntity>().Ignore(c => c.Radius);
modelBuilder.Entity<CustomerLocationEntity>().Ignore(c => c.Distance);
Run Code Online (Sandbox Code Playgroud)
存储过程的调用方式如下:
await SalesContext.CustomerLocation
.FromSql("GetCustomersByLocation @latitude={0}, @longitude={1}, @radius={2}", lat,
lon, radius)
.ToListAsync();
Run Code Online (Sandbox Code Playgroud)
执行查询时,忽略的列不会映射到实体。调用存储过程时是否有可能将忽略的字段映射到实体,或者我是否必须为存储过程创建另一个实体或类似的东西?
我知道 C# System.Collections.Generic.List 对象不是线程安全的。但我想知道为什么这段代码会生成空值。
Task.Run(() =>
{
for (var i = 0; i < 10; i++)
{
var str = $"Test {i}";
list.Add(str);
if (i == 9)
{
i = 0;
}
}
});
Task.Run(() =>
{
while (true)
{
list.Remove("Test 1");
list.Remove("Test 2");
list.Remove("Test 3");
list.Remove("Test 4");
list.Remove("Test 5");
list.Remove("Test 6");
list.Remove("Test 7");
list.Remove("Test 8");
list.Remove("Test 9");
}
});
Run Code Online (Sandbox Code Playgroud)
这是几秒钟后列表的一部分:
如果条目不存在于列表中,则负责从列表中删除条目的线程可能会崩溃。因此,出于其他多线程原因,我理解为什么没有从列表中删除某些对象,但我不明白这些空值是如何生成的。有没有人解释这些值是如何生成的?