Без отражения:
public int GetStableHash()
{
var now = DateTime.Now;
var nowInt = (int) now.Kind;
var nowTicks = (ulong) now.Ticks;
return (((ulong) nowInt) << 62) | nowTicks;
}
Со свойствами: { ссылка }
EDIT:
Но я все еще думаю, что GUID достаточно хорош - автоматически генерируется, инкрементально, имеет преимущества с EFCore (например, метод обновления), et c.
Fluent API:
public override void Configure(EntityTypeBuilder<Entity> entityBuilder)
{
entityBuilder.Property(entity => entity.Id).HasDefaultValueSql("NEWID()");
}
Или с аннотацией: [DatabaseGenerated(DatabaseGeneratedOption.Identity)]