小编wai*_*rit的帖子

缓冲参数在Dapper dot net中做了什么?

Dapper dot net有一个buffer参数(bool),但据我所知,它唯一能做的就是在返回之前将结果转换为列表.

根据文件:

Dapper的默认行为是执行你的sql并在返回时缓冲整个读者.在大多数情况下,这是理想的,因为它最大限度地减少了数据库中的共享锁,并减少了数据库网络时间.

但是,在执行大量查询时,您可能需要最小化内存占用并仅根据需要加载对象.为此,在Query方法中传递,缓冲:false.

我不确定如何将结果转换为列表来实现此目的.我错过了什么吗?我唯一的想法是它应该设置CommandBehaviorExecuteReaderto CommandBehavior.SequentialAccess(但它没有).

.net sqldatareader dapper

41
推荐指数
2
解决办法
8583
查看次数

弹性存在查询嵌套文档

我有一个嵌套文件:

"someField": "hello",
"users": [
   {
     "name": "John",
      "surname": "Doe",
      "age": 2
   }
]
Run Code Online (Sandbox Code Playgroud)

根据此https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-query.html,以上内容应符合:

GET /_search
{
  "query": {
    "exists" : { "field" : "users" }
  }
Run Code Online (Sandbox Code Playgroud)

}

而以下不应该,

"someField": "hello",
"users": []
Run Code Online (Sandbox Code Playgroud)

但不幸的是两者都不匹配.有任何想法吗?

elasticsearch

22
推荐指数
3
解决办法
2万
查看次数

HttpClient - 此实例已经启动

我在api中使用http客户端获取此异常.

执行请求时发生了未处理的异常.System.InvalidOperationException:此实例已启动一个或多个请求.只能在发送第一个请求之前修改属性.

我把我的服务注入了

services.AddSingleton<HttpClient>()
Run Code Online (Sandbox Code Playgroud)

我认为单身是我最好的选择.什么可能是我的问题?

编辑:我的用法

class ApiClient
{
   private readonly HttpClient _client;
   public ApiClient(HttpClient client)
   {
      _client = client;
   }

   public async Task<HttpResponseMessage> GetAsync(string uri)
   {
     _client.BaseAddress = new Uri("http://localhost:5001/");
     _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json");
     var response = await _client.GetAsync(uri);

     return response;
   }
 }
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core

19
推荐指数
2
解决办法
2万
查看次数

.net core DI中的异步提供程序

我只是想知道async/await在DI期间是否有可能.

执行以下操作,DI无法解析我的服务.

services.AddScoped(async provider => 
{
  var client = new MyClient();
  await client.ConnectAsync();
  return client;
});
Run Code Online (Sandbox Code Playgroud)

以下作品完美无缺.

services.AddScoped(provider => 
{
  var client = new MyClient();
  client.ConnectAsync().Wait();
  return client;
});
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection async-await asp.net-core-mvc asp.net-core-webapi

11
推荐指数
1
解决办法
5141
查看次数

docker deploy vs docker stack deploy

根据文档,它们是两个相同的命令: docker stack deploydocker deploy.

是这种情况还是某些信息隐藏在某处?

docker

8
推荐指数
1
解决办法
687
查看次数

HttpClient PostAsync发布空内容

我有一个api叫另一个.

这是我的代码,似乎ModelState.IsValid = false在世界的另一边.

var baseUri = new Uri("http://localhost:5001/"):
_httpClient.BaseAdress = baseUri;
var data = new StringContent(content: model.Tostring(),
             encoding: Encoding.UTF8, 
             mediaType: "application/json");

var response = await _httpClient.PostAsync("api/product", data);
Run Code Online (Sandbox Code Playgroud)

看着Post([FromBody]Product product)被称为api的api我只是看到了product=null.

改变Post([FromBody]object product)也显示null.

调用api Postman完美无缺.将我的问题本地化PostAsync.我的情况怎么样PostAsync

编辑:

我知道人们可能会建议PostAsJsonAsync,但我会在我知道问题出在后才会尝试PostAsync.:(

c# dotnet-httpclient asp.net-core-webapi

6
推荐指数
1
解决办法
6044
查看次数

单元测试使用Assembly的方法

我需要对xUnit使用的方法进行单元测试Assembly,特别是使用参数调用Assembly.GetEntryAssembly().

但不幸的是,在单元测试项目中,入口组件似乎testhost不是我的测试项目.这样我就无法搜索我的测试项目.那是否意味着我无法测试这种方法?还是另一种方式?

c# unit-testing .net-core

4
推荐指数
1
解决办法
484
查看次数

String.Format()在数千个地方添加逗号,以便数字不起作用

String.Format 要在数千个地方添加逗号,只需添加空格而不用逗号.

我试过了:

 var total = string.Format("{0:n0}", 12345);
 // expect: total = 12,345
 // actual: total = 12 345
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

c#

0
推荐指数
1
解决办法
1106
查看次数