小编Max*_*Max的帖子

.net core 2.0 ConfigureLogging xunit test

在我的.NET Core 2.0项目中的xUnit集成测试中,我无法在终端中看到同时打印测试结果的日志消息.在WebHost环境中运行代码时,日志将打印到控制台.

这是我在测试构造函数中配置日志记录的方法:

var config = new ConfigurationBuilder()
    .AddJsonFile("appsettings.Tests.json")
    .Build();

var services = new ServiceCollection();

services.AddLogging(options => {
    options.AddConfiguration(config.GetSection("Logging"));
    options.AddConsole();
    options.AddDebug();
});

var serviceProvider = services.BuildServiceProvider();
var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
var logger = loggerFactory.CreateLogger("Test");
logger.LogError("From ctor");
Run Code Online (Sandbox Code Playgroud)

但我没有看到任何日志消息.

c# logging xunit asp.net-core

9
推荐指数
1
解决办法
5532
查看次数

具有空值的MongoDb查询数组

我的收藏中的对象看起来像:

{ MyArray:[null, "some value", null] }
Run Code Online (Sandbox Code Playgroud)

我想查询具有null值的对象作为数组元素.查询

db.collection.find({"MyArray":null})
Run Code Online (Sandbox Code Playgroud)

不起作用,它似乎只找到MyArray为null的对象,例如

{ MyArray:null }
Run Code Online (Sandbox Code Playgroud)

我如何定义查询?

编辑:请看我的一个真实的对象:

{
        "_id" : BinData(3,"ch9PrWveqU6niB6FGVhIOg=="),
        "PeerGroup" : "male",
        "ProductId" : BinData(3,"weRiKOtXEUSDZHkGHLcwzw=="),
        "CategoryIds" : [
                BinData(3,"BXzpwVQozECLaPkJy26t6Q=="),
                BinData(3,"ox303ZeM50KelvoUbPBJ8Q=="),
                BinData(3,"26ziaY+G9UKMyjmtVkkhcg=="),
                BinData(3,"D2X8vObte0eJHNcDfp2HBw==")
        ],
        "ShopId" : BinData(3,"ZdfPmrlKR0GkLPC4djJuKw=="),
        "BrandId" : BinData(3,"kCHyuyLvgECxPF1nxwr7qQ=="),
        "Created" : ISODate("2012-08-24T07:42:12.416Z"),
        "LastActivity" : ISODate("2013-01-14T19:38:11.776Z"),
        "Price" : 129.9,
        "Sale" : false,
        "Rating" : 11.057340703605368,
        "RatingTimed" : 0.05670431130054035,
        "Available" : null,
        "FreeDelivery" : null,
        "Attrs" : [
                null,
                null,
                null,
                null
        ]
}
Run Code Online (Sandbox Code Playgroud)

然后我通过以下方式查询:

db.collection.find({"Attrs":null})
Run Code Online (Sandbox Code Playgroud)

没有结果.

mongodb

7
推荐指数
2
解决办法
9041
查看次数

C#任务并行库和NHibernate/Spring.NET

我已经使用Spring.NET和NHibernate多年了,我非常满意.但是,我总是在玩多线程,Reactive Extensions以及最终的Task Parallel Library这是一个很棒的框架.不幸的是,由于NHiberntate的会话不是线程安全的,所有类型的多线程方法都会失败.

我问你如何从并行编程中受益并仍然使用NHibernate.

例如:我有一个CustomerRegistrationService类,哪个方法Register执行几个任务:

ICustumer customer = this.CreateCustomerAndAdresses(params);
this.CreateMembership(customer);
this.CreateGeoLookups(customer.Address);
this.SendWelcomeMail(customer);
Run Code Online (Sandbox Code Playgroud)

最后两种方法是并行运行的理想候选方法,CreateGeoLookups调用一些Web服务来确定客户地址的地理位置,并创建一些新实体以及更新客户本身.SendWelcomMail它做了什么.

因为CreateGeoLookups确实使用NHibernate(虽然通过存储库对象,因此NHibernate通过接口/依赖关系实际上是隐藏的),但它不能与Task.Factory.StarNew(...)或其他线程机制一起使用.

我的问题不是解决我所描述的这个问题,但我想听听你关于NHibenrate,Spring.NET和并行方法的问题.

非常感谢Max

nhibernate task-parallel-library

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

任务/线程中的 CredentialsCache.DefaultCredentials

我希望你能帮助我。

我正在我的 C# 4.0 应用程序中执行一些需要身份验证的 webrequest。我只是使用CredentialsCache.DefaultCredentials. 只要我不通过Task<T>.Factory.StartNew(...). 然后我收到 401 错误。我假设凭据没有传递给子线程?

如何将凭据传递给任何子任务/线程?

.net c# authentication task-parallel-library credentialscache

5
推荐指数
1
解决办法
1784
查看次数

使用mongodb建立索引:性能不佳/ indexOnly = false

我在运行的8GB linux机器上有一个mongodb.目前它处于测试模式,因此很少有其他请求进入,如果有的话.

我有一个colelction项目,其中包含100万个文档.我创建的字段的索引:对等组和CategoryIds(其为3-6的元件,这将在一个多键得到的阵列): db.items.ensureIndex({PeerGroup:1, CategoryIds:1}.

当我在查询时

db.items.find({"CategoryIds" : new BinData(3,"xqScEqwPiEOjQg7tzs6PHA=="), "PeerGroup" : "anonymous"}).explain()
Run Code Online (Sandbox Code Playgroud)

我有以下结果:

{
    "cursor" : "BtreeCursor PeerGroup_1_CategoryIds_1",
    "isMultiKey" : true,
    "n" : 203944,
    "nscannedObjects" : 203944,
    "nscanned" : 203944,
    "nscannedObjectsAllPlans" : 203944,
    "nscannedAllPlans" : 203944,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 1,
    "nChunkSkips" : 0,
    "millis" : 680,
    "indexBounds" : {
            "PeerGroup" : [
                    [
                            "anonymous",
                            "anonymous"
                    ]
            ],
            "CategoryIds" : [
                    [
                            BinData(3,"BXzpwVQozECLaPkJy26t6Q=="),
                            BinData(3,"BXzpwVQozECLaPkJy26t6Q==")
                    ]
            ]
    },
    "server" : "db02:27017"
Run Code Online (Sandbox Code Playgroud)

}

我认为680ms并不是那么快.或者这可以接受吗?另外,为什么说"indexOnly:false"?

indexing mongodb

2
推荐指数
1
解决办法
2738
查看次数

SQL性能:UNION或ORDER BY

问题是:我们有一个非常复杂的搜索查询.如果其结果产生的行太少,我们通过使用相同查询的不太严格的版本UNIONing查询来扩展结果.

我们正在讨论一种不同的方法是更快和/或更好的质量.我们将创建一个自定义sql函数,而不是UNIONing,它将返回匹配的分数.然后我们可以简单地按匹配分数排序.

关于性能:它会比UNION慢吗?

我们使用PostgreSQL.

任何建议将不胜感激.

非常感谢Max

sql postgresql performance

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