Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add UUID version 7 as the default guid generator #3249

Merged
merged 9 commits into from
Sep 1, 2024
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions src/EFCore.PG/ValueGeneration/Internal/NpgsqlUuid7ValueGenerator.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace Npgsql.EntityFrameworkCore.PostgreSQL.ValueGeneration.Internal;

/// <summary>
/// This API supports the Entity Framework Core infrastructure and is not intended to be used
/// directly from your code. This API may change or be removed in future releases.
/// </summary>
public class NpgsqlUuid7ValueGenerator : ValueGenerator<Guid>
{
/// <summary>
/// This API supports the Entity Framework Core infrastructure and is not intended to be used
/// directly from your code. This API may change or be removed in future releases.
/// </summary>
public override bool GeneratesTemporaryValues => false;

/// <summary>
/// This API supports the Entity Framework Core infrastructure and is not intended to be used
/// directly from your code. This API may change or be removed in future releases.
/// </summary>
public override Guid Next(EntityEntry entry) => BorrowedFromNet9.CreateVersion7(timestamp: DateTimeOffset.UtcNow);

// Code borrowed from .NET 9 should be removed as soon as the target framework includes such code
#region Borrowed from .NET 9

#pragma warning disable IDE0007 // Use implicit type -- Avoid changes to code borrowed from BCL

// https://github.com/dotnet/runtime/blob/f402418aaed508c1d77e41b942e3978675183bfc/src/libraries/System.Private.CoreLib/src/System/Guid.cs
internal static class BorrowedFromNet9
{
private const byte Variant10xxMask = 0xC0;
private const byte Variant10xxValue = 0x80;

private const ushort VersionMask = 0xF000;
private const ushort Version7Value = 0x7000;

/// <summary>Creates a new <see cref="Guid" /> according to RFC 9562, following the Version 7 format.</summary>
/// <returns>A new <see cref="Guid" /> according to RFC 9562, following the Version 7 format.</returns>
/// <remarks>
/// <para>This uses <see cref="DateTimeOffset.UtcNow" /> to determine the Unix Epoch timestamp source.</para>
/// <para>This seeds the rand_a and rand_b sub-fields with random data.</para>
/// </remarks>
public static Guid CreateVersion7() => CreateVersion7(DateTimeOffset.UtcNow);

/// <summary>Creates a new <see cref="Guid" /> according to RFC 9562, following the Version 7 format.</summary>
/// <param name="timestamp">The date time offset used to determine the Unix Epoch timestamp.</param>
/// <returns>A new <see cref="Guid" /> according to RFC 9562, following the Version 7 format.</returns>
/// <exception cref="ArgumentOutOfRangeException"><paramref name="timestamp" /> represents an offset prior to <see cref="DateTimeOffset.UnixEpoch" />.</exception>
/// <remarks>
/// <para>This seeds the rand_a and rand_b sub-fields with random data.</para>
/// </remarks>
public static Guid CreateVersion7(DateTimeOffset timestamp)
{
// NewGuid uses CoCreateGuid on Windows and Interop.GetCryptographicallySecureRandomBytes on Unix to get
// cryptographically-secure random bytes. We could use Interop.BCrypt.BCryptGenRandom to generate the random
// bytes on Windows, as is done in RandomNumberGenerator, but that's measurably slower than using CoCreateGuid.
// And while CoCreateGuid only generates 122 bits of randomness, the other 6 bits being for the version / variant
// fields, this method also needs those bits to be non-random, so we can just use NewGuid for efficiency.
var result = Guid.NewGuid();

// 2^48 is roughly 8925.5 years, which from the Unix Epoch means we won't
// overflow until around July of 10,895. So there isn't any need to handle
// it given that DateTimeOffset.MaxValue is December 31, 9999. However, we
// can't represent timestamps prior to the Unix Epoch since UUIDv7 explicitly
// stores a 48-bit unsigned value, so we do need to throw if one is passed in.

var unix_ts_ms = timestamp.ToUnixTimeMilliseconds();
ArgumentOutOfRangeException.ThrowIfNegative(unix_ts_ms, nameof(timestamp));

ref var resultClone = ref Unsafe.As<Guid, GuidDoppleganger>(ref result); // Deviation from BLC: Reinterpret Guid as our own type so that we can manipulate its private fields

Unsafe.AsRef(in resultClone._a) = (int)(unix_ts_ms >> 16);
Unsafe.AsRef(in resultClone._b) = (short)unix_ts_ms;

Unsafe.AsRef(in resultClone._c) = (short)(resultClone._c & ~VersionMask | Version7Value);
Unsafe.AsRef(in resultClone._d) = (byte)(resultClone._d & ~Variant10xxMask | Variant10xxValue);

return result;
}
}

/// <summary>
/// Used to manipulate the private fields of a <see cref="Guid"/> like its internal methods do, by treating a <see cref="Guid"/> as a <see cref="GuidDoppleganger"/>.
/// </summary>
[StructLayout(LayoutKind.Sequential)]
internal readonly struct GuidDoppleganger
{
#pragma warning disable IDE1006 // Naming Styles -- Avoid further changes to code borrowed from BCL when working with the current type
internal readonly int _a; // Do not rename (binary serialization)
internal readonly short _b; // Do not rename (binary serialization)
internal readonly short _c; // Do not rename (binary serialization)
internal readonly byte _d; // Do not rename (binary serialization)
internal readonly byte _e; // Do not rename (binary serialization)
internal readonly byte _f; // Do not rename (binary serialization)
internal readonly byte _g; // Do not rename (binary serialization)
internal readonly byte _h; // Do not rename (binary serialization)
internal readonly byte _i; // Do not rename (binary serialization)
internal readonly byte _j; // Do not rename (binary serialization)
internal readonly byte _k; // Do not rename (binary serialization)
#pragma warning restore IDE1006 // Naming Styles
}

#pragma warning restore IDE0007 // Use implicit type

#endregion
}
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,6 @@ public override bool TrySelect(IProperty property, ITypeBase typeBase, out Value
=> property.ClrType.UnwrapNullableType() == typeof(Guid)
? property.ValueGenerated == ValueGenerated.Never || property.GetDefaultValueSql() is not null
? new TemporaryGuidValueGenerator()
: new GuidValueGenerator()
: new NpgsqlUuid7ValueGenerator()
: base.FindForType(property, typeBase, clrType);
}
19 changes: 17 additions & 2 deletions test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
AssertGenerator<TemporaryByteValueGenerator>("NullableByte");
AssertGenerator<TemporaryDecimalValueGenerator>("Decimal");
AssertGenerator<StringValueGenerator>("String");
AssertGenerator<GuidValueGenerator>("Guid");
AssertGenerator<NpgsqlUuid7ValueGenerator>("Guid");
AssertGenerator<BinaryValueGenerator>("Binary");
}

Expand Down Expand Up @@ -128,7 +128,7 @@
AssertGenerator<NpgsqlSequenceHiLoValueGenerator<long>>("NullableLong", setSequences: true);
AssertGenerator<NpgsqlSequenceHiLoValueGenerator<short>>("NullableShort", setSequences: true);
AssertGenerator<StringValueGenerator>("String", setSequences: true);
AssertGenerator<GuidValueGenerator>("Guid", setSequences: true);
AssertGenerator<NpgsqlUuid7ValueGenerator>("Guid", setSequences: true);
AssertGenerator<BinaryValueGenerator>("Binary", setSequences: true);
}

Expand Down Expand Up @@ -210,4 +210,19 @@
public override bool GeneratesTemporaryValues
=> false;
}

[Fact]
public void NpgsqlUuid7ValueGenerator_creates_uuidv7()
{
var dtoNow = DateTimeOffset.UtcNow;
var net9Internal = Guid.CreateVersion7(dtoNow);

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 13, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 13, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 15, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 15, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Debug)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Debug)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 14, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 14, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 12, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 12, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 16, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 16, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 15, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 15, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 12, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 12, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 14, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 14, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 13, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 13, Release)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / Analyze (csharp)

'Guid' does not contain a definition for 'CreateVersion7'

Check failure on line 218 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / Analyze (csharp)

'Guid' does not contain a definition for 'CreateVersion7'
var custom = NpgsqlUuid7ValueGenerator.BorrowedFromNet9.CreateVersion7(dtoNow);
var bytenet9 = net9Internal.ToByteArray().AsSpan(0, 6);
var bytecustom = custom.ToByteArray().AsSpan(0, 6);
Assert.Equal(bytenet9, bytecustom);
Assert.Equal(7, net9Internal.Version);
Assert.Equal(net9Internal.Version, custom.Version);

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 13, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 13, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 15, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 15, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Debug)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Debug)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 14, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 14, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 12, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 12, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 16, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 16, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 15, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 15, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 12, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 12, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 14, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 14, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 13, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 13, Release)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / Analyze (csharp)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 224 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / Analyze (csharp)

'Guid' does not contain a definition for 'Version' and no accessible extension method 'Version' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)
Assert.InRange(net9Internal.Variant, 8, 0xB);
Assert.InRange(custom.Variant, 8, 0xB);

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 13, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 13, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 15, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 15, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Debug)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Debug)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 14, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 14, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 12, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 12, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-22.04, 16, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 16, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 16, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 15, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 15, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 12, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 12, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 14, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 14, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 13, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / build (windows-2022, 13, Release)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / Analyze (csharp)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 226 in test/EFCore.PG.Tests/NpgsqlValueGeneratorSelectorTest.cs

View workflow job for this annotation

GitHub Actions / Analyze (csharp)

'Guid' does not contain a definition for 'Variant' and no accessible extension method 'Variant' accepting a first argument of type 'Guid' could be found (are you missing a using directive or an assembly reference?)
}
}
Loading