CodeFluent中的顺序GUID

时间:2017-02-13 08:36:31

标签: c# sql-server codefluent

我们使用Guid作为至少一半表的标识符。对于其他表,可以使用更多“自然”标识符,以便我们可以从自然聚簇索引中获利。我们注意到Guids的使用会导致数据库中的大量开销,因为它们不是连续的。

有没有人在Codefluent中实现顺序指南,还是尝试过?你能分享你的方法和/或代码吗?

1 个答案:

答案 0 :(得分:2)

您可以使用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();
}