私たちは少なくとも半分のテーブルの識別子としてGuidを使用します。他の表では、より自然な識別子を使用して、自然なクラスタード・インデックスから利益を得ることができます。私たちは、Guidsの使用はシーケンシャルではないので、データベースで多くのオーバーヘッドを引き起こすことに気付きました。CodeFluentのシーケンシャルGUID
CodefluentでSequential Guidsを実装した人はいますか?あなたのアプローチやコードを共有できますか?
私たちは少なくとも半分のテーブルの識別子としてGuidを使用します。他の表では、より自然な識別子を使用して、自然なクラスタード・インデックスから利益を得ることができます。私たちは、Guidsの使用はシーケンシャルではないので、データベースで多くのオーバーヘッドを引き起こすことに気付きました。CodeFluentのシーケンシャルGUID
CodefluentでSequential Guidsを実装した人はいますか?あなたのアプローチやコードを共有できますか?
UuidCreateSequential
で新しいシーケンシャルGUIDをC#で生成し、それをコンストラクタのプロパティ(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();
}
ありがとうmeziantou、それは私が探していたものです! –
@PeterdeBruijn - これは大きく変わることはありません。改善する必要があります:https://blogs.msdn.microsoft.com/dbrowne/2012/07/03/how-to-generate-sequential-guids-for- sql-server-in-net /とにかく、ある期間にわたって、そして異なるマシンからどのように「シーケンシャル」になるのか分かりません。 「連続性」が必要な場合は、アイデンティティを使用する必要があります。 –
"シーケンシャルGUIDは" 矛盾です。そうではありません。 – Gustav
Gustav、シーケンシャルガイドについては多くのドキュメントがあります。たとえば、http://www.siepman.nl/blog/post/2013/10/28/ID-Sequential-Guid-COMB-Vs-Int-Identity-using-Entity-Framework.aspxを参照してください。 –
ありがとう、それについて知らなかった。 _SQL Server_スペシャルと思われるので、質問に_SQL Server_タグを追加しました。 – Gustav