小编Pee*_*its的帖子

当仅传递变量时,日志消息模板不应在调用之间变化(CA2254)

我理解这个警告的概念(类似于这个问题),但是这段代码有什么问题?

    private async Task LogWarningAsync(short? userCodeId, string message, params object[] args)
    {
        _logger.LogWarning(message, args);

        // Do something on the database...
    }
Run Code Online (Sandbox Code Playgroud)

警告:

CA2254

日志消息模板在调用“LoggerExtensions.LogWarning(ILogger, string?, params object?[])”之间不应有所不同

c#

51
推荐指数
4
解决办法
5万
查看次数

为什么TFS"删除映射"会删除我的文件?

我想在不同的文件夹中检查项目的旧版本,因为我不想打扰我修改的本地内容,所以我想我会删除映射并将其映射到另一个文件夹,然后将其映射回来.

我很震惊地看到它开始删除我的文件!我快速点击取消.幸运的是,它似乎没有删除我的修改和本地文件.

我该怎么做这样的事情?

这发生在Visual Studio 2010的Team Foundation Server上,但我确信它适用于所有版本.

tfs visual-studio

18
推荐指数
2
解决办法
7787
查看次数

单元/集成测试和恢复数据库

忙于C#中的自动化测试用例,我们需要在每次测试后恢复数据库快照.问题是,当运行多个测试时,它会失败,因为"当其他用户正在使用数据库时,无法更改数据库状态".

我们SqlConnection.ClearAllPools();在恢复之前使用,但在第四次测试之后,它将不会再次恢复运行,并且似乎池停止清除.(为什么四个?见编辑2)

我怎样才能让它更可靠?

编辑

也许我应该提供有关该系统的更多信息.这些是服务的单元集成测试.测试引用服务dll(没有服务引用,我们直接访问服务方法).因此,除了在每个测试块之后恢复数据库快照之外,测试中没有SQL.

这是一项服务,因此我们无法完全管理连接.我们有一个中心点,我们创建数据库对象,从中我们获取DbCommands来执行存储过程.

sp_who2在SQL studio中使用,我观察到以下内容:前四个测试块有一个到DB的会话(其中每个块由a ClearAllPools()和快照恢复分隔),但是从第五个测试块开始,有三个会话对应它.(为什么?这可能是问题的线索.)(快照恢复打开了与主数据库的附加连接.)所有打开的连接都有状态休眠,等待命令,甚至是阻止快照恢复连接的连接.

编辑2

为什么五个?我认为测试用例会随机执行,但我错了.我找到了罪魁祸首.打开多个连接,系统仅使用最后一个连接,其他连接处于挂起状态,直到退出后才会清除.

c# sql integration-testing unit-testing snapshot

8
推荐指数
2
解决办法
2507
查看次数

编辑时防止重复编辑/锁定DB记录 - 单个后端服务器

情况:共享单个后端服务器(WCF RIA或其他Web服务)的多个前端(例如Silverlight,ASP).

我正在寻找一个标准,以防止多人编辑同一个表格.我知道这不是一个容易的主题,但要求是要求.

以前我使用DB上次修改日期来对提交的数据进行处理,如果数据在加载后被修改,则会发出警告或错误.初始系统只是在没有任何警告的情况下覆盖数据.问题是我有一个新的要求来防止这两种情况.会有很多UI,因此锁定系统可能是一个挑战,并且显然无法保证客户端不会在编辑过程中关闭窗口/浏览器.

我将不胜感激任何帮助.

c# silverlight session wcf

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

如何真正删除git/SourceTree上的标记

我知道如何从SourceTree中删除标签.只需右键单击,删除并勾选"从所有遥控器中删除标记".然后执行以下操作(-c diff.mnemonicprefix=false -c core.quotepath=false为了便于阅读,我省略了标志):

git tag -d my_tag
git push -v origin :refs/tags/my_tag
Run Code Online (Sandbox Code Playgroud)

这有效.

这是问题所在.

一段时间后,其他开发人员将其功能分支推送到源,SourceTree将自动将所有本地标签推送到远程服务器.这将重新创建我刚刚删除的标签.

我知道这个想法是标签不会"被认为"被删除,例如标记版本,但有时会发生错误.

有什么建议?

tags git atlassian-sourcetree sourcetree

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

SQL 递归 CTE:通过多个递归引用防止递归循环

我有一个递归 CTE 查询,但是在创建循环时它失败了。我已经修复了简单的循环(例如 1 -> 2 -> 1),但无法修复更复杂的循环(例如 1 -> 2 -> 3 -> 2)。

查询详情

测试表有两列:Base 和Parent。我想要一个所有祖先的列表。

如果您从 test2 开始,我的查询适用于下面的示例数据,但在您从 test1 开始时则无效。

样本数据

Base    Parent
----    ------
test1   test2
test2   test3
test3   test2
Run Code Online (Sandbox Code Playgroud)

SQL 查询(我尝试的修复已在注释中标记)

;with sample_data (Base, Parent) as (
    select 'test1', 'test2'
    union select 'test2', 'test3'
    union select 'test3', 'test2'
),
nt_list (Base, Ancestor, [level]) as (
        select  Base,
                Parent Ancestor,
                1 [level]
        from    sample_data
        where   Base = 'test1' -- START HERE
        union all
        select  ntl.Base, …
Run Code Online (Sandbox Code Playgroud)

sql recursive-query common-table-expression

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