public void DiscoverKeyProperties_does_not_discover_key_when_multiple_ids() { var entityBuilder = CreateInternalEntityBuilder <EntityWithMultipleIds>(); RunConvention(entityBuilder); var key = entityBuilder.Metadata.FindPrimaryKey(); Assert.Null(key); var logEntry = ListLoggerFactory.Log.Single(); Assert.Equal(LogLevel.Debug, logEntry.Level); Assert.Equal( CoreResources.LogMultiplePrimaryKeyCandidates(new TestLogger <TestLoggingDefinitions>()).GenerateMessage( nameof(EntityWithMultipleIds.ID), nameof(EntityWithMultipleIds.Id), nameof(EntityWithMultipleIds)), logEntry.Message); var context = new ConventionContext <string>( entityBuilder.Metadata.Model.ConventionDispatcher); entityBuilder.Ignore("ID", ConfigurationSource.DataAnnotation); CreateKeyDiscoveryConvention().ProcessEntityTypeMemberIgnored(entityBuilder, "ID", context); Assert.Equal("Id", entityBuilder.Metadata.FindPrimaryKey().Properties.Single().Name); }
public void DiscoverKeyProperties_does_not_discover_key_when_multiple_ids() { var entityBuilder = CreateInternalEntityBuilder <EntityWithMultipleIds>(); Assert.Same(entityBuilder, CreateKeyDiscoveryConvention().Apply(entityBuilder)); var key = entityBuilder.Metadata.FindPrimaryKey(); Assert.Null(key); var logEntry = ListLoggerFactory.Log.Single(); Assert.Equal(LogLevel.Debug, logEntry.Level); Assert.Equal( CoreResources.LogMultiplePrimaryKeyCandidates(new TestLogger <LoggingDefinitions>()).GenerateMessage( nameof(EntityWithMultipleIds.ID), nameof(EntityWithMultipleIds.Id), nameof(EntityWithMultipleIds)), logEntry.Message); }