mirror of
https://github.com/fergalmoran/EFCore.NamingConventions.git
synced 2025-12-22 09:38:21 +00:00
@@ -28,7 +28,15 @@ namespace EFCore.NamingConventions.Test
|
|||||||
{
|
{
|
||||||
using var context = CreateContext();
|
using var context = CreateContext();
|
||||||
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
||||||
Assert.Equal("pk_simpleblog", entityType.GetKeys().Single().GetName());
|
Assert.Equal("pk_simpleblog", entityType.GetKeys().Single(k => k.IsPrimaryKey()).GetName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Alternative_key_name_is_rewritten()
|
||||||
|
{
|
||||||
|
using var context = CreateContext();
|
||||||
|
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
||||||
|
Assert.Equal("ak_simpleblog_somealternativekey", entityType.GetKeys().Single(k => !k.IsPrimaryKey()).GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|||||||
@@ -16,10 +16,12 @@ namespace EFCore.NamingConventions.Test
|
|||||||
public DbSet<SimpleBlog> Blog { get; set; }
|
public DbSet<SimpleBlog> Blog { get; set; }
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
=> modelBuilder.Entity<SimpleBlog>(e =>
|
||||||
modelBuilder.Entity<SimpleBlog>(e => e.HasIndex(b => b.FullName));
|
{
|
||||||
modelBuilder.Entity<SimpleBlog>().OwnsOne(p => p.OwnedStatistics);
|
e.HasIndex(b => b.FullName);
|
||||||
}
|
e.OwnsOne(b => b.OwnedStatistics);
|
||||||
|
e.HasAlternateKey(b => b.SomeAlternativeKey);
|
||||||
|
});
|
||||||
|
|
||||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||||
=> _useNamingConvention(optionsBuilder.UseInMemoryDatabase("test"));
|
=> _useNamingConvention(optionsBuilder.UseInMemoryDatabase("test"));
|
||||||
@@ -29,6 +31,7 @@ namespace EFCore.NamingConventions.Test
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public string FullName { get; set; }
|
public string FullName { get; set; }
|
||||||
|
public int SomeAlternativeKey { get; set; }
|
||||||
|
|
||||||
public List<Post> Posts { get; set; }
|
public List<Post> Posts { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,15 @@ namespace EFCore.NamingConventions.Test
|
|||||||
{
|
{
|
||||||
using var context = CreateContext();
|
using var context = CreateContext();
|
||||||
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
||||||
Assert.Equal("pk_simple_blog", entityType.GetKeys().Single().GetName());
|
Assert.Equal("pk_simple_blog", entityType.GetKeys().Single(k => k.IsPrimaryKey()).GetName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Alternative_key_name_is_rewritten()
|
||||||
|
{
|
||||||
|
using var context = CreateContext();
|
||||||
|
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
||||||
|
Assert.Equal("ak_simple_blog_some_alternative_key", entityType.GetKeys().Single(k => !k.IsPrimaryKey()).GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -54,7 +62,7 @@ namespace EFCore.NamingConventions.Test
|
|||||||
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
||||||
Assert.Equal("ix_simple_blog_full_name", entityType.GetIndexes().Single().GetName());
|
Assert.Equal("ix_simple_blog_full_name", entityType.GetIndexes().Single().GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
TestContext CreateContext() => new TestContext(NamingConventionsExtensions.UseSnakeCaseNamingConvention);
|
TestContext CreateContext() => new TestContext(NamingConventionsExtensions.UseSnakeCaseNamingConvention);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,15 @@ namespace EFCore.NamingConventions.Test
|
|||||||
{
|
{
|
||||||
using var context = CreateContext();
|
using var context = CreateContext();
|
||||||
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
||||||
Assert.Equal("PK_SIMPLEBLOG", entityType.GetKeys().Single().GetName());
|
Assert.Equal("PK_SIMPLEBLOG", entityType.GetKeys().Single(k => k.IsPrimaryKey()).GetName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Alternative_key_name_is_rewritten()
|
||||||
|
{
|
||||||
|
using var context = CreateContext();
|
||||||
|
var entityType = context.Model.FindEntityType(typeof(SimpleBlog));
|
||||||
|
Assert.Equal("AK_SIMPLEBLOG_SOMEALTERNATIVEKEY", entityType.GetKeys().Single(k => !k.IsPrimaryKey()).GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ namespace EFCore.NamingConventions.Internal
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
internal abstract class NameRewriterBase :
|
internal abstract class NameRewriterBase :
|
||||||
IEntityTypeAddedConvention, IPropertyAddedConvention, IForeignKeyOwnershipChangedConvention,
|
IEntityTypeAddedConvention, IPropertyAddedConvention, IForeignKeyOwnershipChangedConvention,
|
||||||
IEntityTypePrimaryKeyChangedConvention, IForeignKeyAddedConvention, IIndexAddedConvention
|
IKeyAddedConvention, IForeignKeyAddedConvention,
|
||||||
|
IIndexAddedConvention
|
||||||
{
|
{
|
||||||
public virtual void ProcessEntityTypeAdded(
|
public virtual void ProcessEntityTypeAdded(
|
||||||
IConventionEntityTypeBuilder entityTypeBuilder, IConventionContext<IConventionEntityTypeBuilder> context)
|
IConventionEntityTypeBuilder entityTypeBuilder, IConventionContext<IConventionEntityTypeBuilder> context)
|
||||||
@@ -33,13 +34,8 @@ namespace EFCore.NamingConventions.Internal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ProcessEntityTypePrimaryKeyChanged(
|
public void ProcessKeyAdded(IConventionKeyBuilder keyBuilder, IConventionContext<IConventionKeyBuilder> context)
|
||||||
IConventionEntityTypeBuilder entityTypeBuilder,
|
=> keyBuilder.HasName(RewriteName(keyBuilder.Metadata.GetName()));
|
||||||
IConventionKey newPrimaryKey,
|
|
||||||
IConventionKey previousPrimaryKey, IConventionContext<IConventionKey> context)
|
|
||||||
{
|
|
||||||
newPrimaryKey?.Builder?.HasName(RewriteName(newPrimaryKey.GetName()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ProcessForeignKeyAdded(
|
public void ProcessForeignKeyAdded(
|
||||||
IConventionRelationshipBuilder relationshipBuilder,
|
IConventionRelationshipBuilder relationshipBuilder,
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ namespace EFCore.NamingConventions.Internal
|
|||||||
conventionSet.EntityTypeAddedConventions.Add(nameRewriter);
|
conventionSet.EntityTypeAddedConventions.Add(nameRewriter);
|
||||||
conventionSet.PropertyAddedConventions.Add(nameRewriter);
|
conventionSet.PropertyAddedConventions.Add(nameRewriter);
|
||||||
conventionSet.ForeignKeyOwnershipChangedConventions.Add(nameRewriter);
|
conventionSet.ForeignKeyOwnershipChangedConventions.Add(nameRewriter);
|
||||||
conventionSet.EntityTypePrimaryKeyChangedConventions.Add(nameRewriter);
|
conventionSet.KeyAddedConventions.Add(nameRewriter);
|
||||||
conventionSet.ForeignKeyAddedConventions.Add(nameRewriter);
|
conventionSet.ForeignKeyAddedConventions.Add(nameRewriter);
|
||||||
conventionSet.IndexAddedConventions.Add(nameRewriter);
|
conventionSet.IndexAddedConventions.Add(nameRewriter);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user