CodeFluent 中的顺序 GUID

Sequential GUID's in CodeFluent

我们使用 Guid 作为至少一半表的标识符。对于其他表,可以使用更多 'natural' 标识符,这样我们就可以从自然聚簇索引中获益。我们注意到使用 Guids 会导致数据库中的大量开销,因为它们不是顺序的。

有人在 Codefluent 中实现或尝试过 Sequential Guids 吗?您可以分享您的方法 and/or 代码吗?

您可以使用 UuidCreateSequential 在 C# 中生成一个新的顺序 guid,并将其分配给构造函数中的 属性(OnAfterCreate 规则)。

CodeFluent 实体模型:

<cf:entity name="Customer">
  <cf:property name="Id" cfom:newGuidOnNew="false" key="true" />
  <cf:property name="Name" />
  <cf:rule typeName="OnAfterCreate" />
</cf:entity>

生成顺序 guid 的自定义代码:

partial class Customer
{
    void OnAfterCreate()
    {
        Id = SequentialGuid.NewGuid();
    }
}

static class SequentialGuid
{
    [DllImport("rpcrt4.dll", EntryPoint = "UuidCreateSequential")]
    public static extern Guid NewGuid();
}