小编Han*_*ank的帖子

Directory.build.props 中的“PropertyGroup”条件不起作用

我已经创建了一个 Directory.build.props 文件,所以我可以在那里设置 C# 语言版本。但我也有 Visual Basic 项目,所以我想将设置限制为 C# 项目。

<Project>
    <PropertyGroup Condition="'$(ProjectExt)'=='.csproj'">
        <LangVersion>7.2</LangVersion>   
    </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

但是我的项目没有加载它/UI 没有显示语言版本 7.2。我试图在 csproj 文件中应用相同的条件,但也不起作用。

<PropertyGroup>
    <LangVersion Condition="'$(ProjectExt)'=='.csproj'">7.2</LangVersion>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

但是,这将起作用:

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
    <Message Text="Condition working" Importance="high" Condition="'$(ProjectExt)'=='.csproj'"/>
</Target>
Run Code Online (Sandbox Code Playgroud)

构建将输出我的消息

为什么该条件不适用于我的 LanguageVersion?任何线索?

msbuild

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

许多行的SQLite更新非常慢

我相信我已经用很多方法来加速许多行的更新,但到目前为止没有任何帮助.

我们正在打开一个交易,如下所示:

private SQLiteTransaction BeginTransaction(SQLiteConnection connection)
{
    return connection.BeginTransaction();
}
Run Code Online (Sandbox Code Playgroud)

然后在课程结束时关闭它.我们打开一个连接,一个事务,然后我们更新数据库上的许多行.这意味着我们在很多表中累积了许多不同的SQL语句.

一个重要的部分是在一个表中更新12000条记录

protected override void UpdateRows(SQLiteConnection connection, IEnumerable<DataRow> rowsToUpdate)     
{
    var command = new SQLiteCommand(Queries.SQLUpdateDocument, connection);

        foreach (DataRow documentRow in rowsToUpdate)
        {
               command.Parameters.AddWithValue("@Filename", documentRow[Constants.Col_Document_Filename]);
               command.Parameters.AddWithValue("@ClassID", documentRow[Constants.Col_Document_ClassID]);
               command.Parameters.AddWithValue("@PageCount", documentRow[Constants.Col_Document_PageCount]);
               command.Parameters.AddWithValue("@DocID", documentRow[Constants.Col_Document_GlobalDocID]);
               command.Parameters.AddWithValue("@ReadOnly", documentRow[Constants.Col_Document_ReadOnly]);
               command.Parameters.AddWithValue("@Confirmed", documentRow[Constants.Col_Document_Confirmed]);
               command.Parameters.AddWithValue("@ParentFolderID", documentRow[Constants.Col_Document_ParentFolderID]);
               command.Parameters.AddWithValue("@SequenceNumber", documentRow[Constants.Col_Document_SequenceNumber]);
               command.Parameters.AddWithValue("@XmlRepr", documentRow[Constants.Col_Document_XmlRepr]);

               command.ExecuteNonQuery();

               documentRow.AcceptChanges();
    }
}
Run Code Online (Sandbox Code Playgroud)

与查询beeing:

UPDATE T_Doc SET
Filename = @Filename,
ClassID = @ClassID,
PageCount = @PageCount,
ReadOnly = @ReadOnly,
Confirmed = @Confirmed,
ParentFolderID = @ParentFolderID,
SequenceNumber = @SequenceNumber,
XmlRepr …
Run Code Online (Sandbox Code Playgroud)

.net c# sqlite

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

使用指针时的 C++ 移动语义

move使用原始指针时如何使用赋值运算符。

除了这样做之外还有其他方法吗:

void Function(T* dest)
{
    T* src = LoadT();
    (*dest) = std::move(*src);
    delete src;
}
Run Code Online (Sandbox Code Playgroud)

c++ move-semantics

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

标签 统计

.net ×1

c# ×1

c++ ×1

move-semantics ×1

msbuild ×1

sqlite ×1