我有这个结构:
public class LogRequestParameters
{
public string RequestID { get; set; }
public string Type { get; set; }
public string Level { get; set; }
public string DateTime { get; set; }
public string MachineName { get; set; }
public Request Request { get; set; }
}
public class Request
{
public string URLVerb { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在编写以下日志记录:
Serilog.Log.Information("{@LogRequestParameters}", logRequestParameters);
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
LogRequestParameters { RequestID: "bf14ff78-d553-4749-b2ac-0e5c333e4fce", Type: "Request", Level: "Debug", DateTime: "9/28/2016 3:12:27 PM", MachineName: "DXBKUSHAL", Request: Request …Run Code Online (Sandbox Code Playgroud) 我正在使用 Serilog - RollingFile Sink,但它将所有数据存储在一个文件中一天。在我的应用程序中,一天写入 1 GB 日志。所以我想根据日期和大小滚动日志文件。
如何配置 RollingFile Sink 以根据日期和大小滚动文件?
我必须在 C# 中计算字符串的 CRC32 校验和并将其发送到外部应用程序。
另一方面,他们将使用 Java 计算它。
但是我的校验和最终不匹配。
例如以下字符串的 CRC32 校验和 43HLV109520DAP10072la19z6
他们的末尾是 1269993351。
和 2947932745 在我最后使用 C#
请告诉我我的代码出了什么问题。
我正在使用这个 0xffffffff 默认种子并遵循 crc 表
readonly static uint[] CRCTable = new uint[] {
0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,
0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,
0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,
0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,
0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,
0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,
0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,
0x45DF5C75, 0xDCD60DCF, …Run Code Online (Sandbox Code Playgroud) 我有一个存储过程,有时在 SELECT 语句后返回异常。例如:
BEGIN TRY
SELECT
EmployeeId,
EmployeeName
FROM dbo.abc
THROW 50000, 'exception occurs here', 16;
END TRY
BEGIN CATCH
THROW 50000, 'exception', 16;
END CATCH
Run Code Online (Sandbox Code Playgroud)
我正在使用 ExecuteReaderAsync 方法来读取数据。
如果有例外,我应该在申请中得到例外。例如:
using (var reader = await ExecuteReaderAsync())
{
while (reader.Read())
{
}
}
Run Code Online (Sandbox Code Playgroud)
但我没有得到任何例外。
这是一种非常奇怪的行为。因为如果当我们在 SELECT 之后有一些逻辑并且逻辑失败(例如任何重要的 UPDATE 语句失败)时发生这种情况,那么这将导致应用程序的行为出现问题。
有人可以帮助我为什么会发生这种奇怪的行为。
聚簇索引根据键值对表或视图中的数据行进行排序和存储.
https://msdn.microsoft.com/en-IN/library/ms190457.aspx
这意味着如果表具有聚簇索引,则该表的行将以与聚簇索引相同的顺序存储在磁盘上.
其次,聚集索引的叶节点包含创建它的表的数据页.
https://technet.microsoft.com/en-us/library/ms177443%28v=sql.105%29.aspx
所以,我的问题是,相同的数据存储在Clustered Index和创建它的表中?
如果是,那么需要以与聚集索引相同的顺序对表进行排序是什么?因为聚簇索引本身将行级数据存储在其叶节点中.
如果不是,那么聚集指数创建背后的实际理论是什么?