public void Detects_nullable_byte_identity_column() { var modelBuilder = CreateConventionalModelBuilder(); modelBuilder.Entity <Dog>().Property(d => d.Id).ValueGeneratedNever(); modelBuilder.Entity <Dog>().Property <byte?>("Bite").UseSqlServerIdentityColumn(); VerifyWarning(SqlServerResources.LogByteIdentityColumn(new TestLogger <SqlServerLoggingDefinitions>()).GenerateMessage("Bite", nameof(Dog)), modelBuilder.Model); }
public void Detects_byte_identity_column(bool obsolete) { var modelBuilder = CreateConventionalModelBuilder(); modelBuilder.Entity <Dog>().Property(d => d.Id).ValueGeneratedNever(); if (obsolete) { #pragma warning disable 618 modelBuilder.Entity <Dog>().Property <byte>("Bite").UseSqlServerIdentityColumn(); #pragma warning restore 618 } else { modelBuilder.Entity <Dog>().Property <byte>("Bite").UseIdentityColumn(); } VerifyWarning(SqlServerResources.LogByteIdentityColumn(new TestLogger <SqlServerLoggingDefinitions>()).GenerateMessage("Bite", nameof(Dog)), modelBuilder.Model); }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public static void ByteIdentityColumnWarning( [NotNull] this IDiagnosticsLogger <DbLoggerCategory.Model.Validation> diagnostics, [NotNull] IProperty property) { var definition = SqlServerResources.LogByteIdentityColumn(diagnostics); if (diagnostics.ShouldLog(definition)) { definition.Log(diagnostics, property.Name, property.DeclaringEntityType.DisplayName()); } if (diagnostics.NeedsEventData(definition, out var diagnosticSourceEnabled, out var simpleLogEnabled)) { var eventData = new PropertyEventData( definition, ByteIdentityColumnWarning, property); diagnostics.DispatchEventData(definition, eventData, diagnosticSourceEnabled, simpleLogEnabled); } }