且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

更改列名约定

更新时间:2022-10-20 15:43:53


以下是一些示例代码。无需删除现有约定,因为您的配置将覆盖它们。


 public class MyContext:DbContext 
{
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);

modelBuilder.Conventions.Add< UpperCaseTables>();
modelBuilder.Conventions.Add< UpperCaseColumns>();
}
}

公共类UpperCaseColumns:
IConfigurationConvention< PropertyInfo,PrimitivePropertyConfiguration>
{
public void Apply(PropertyInfo propertyInfo,Func< PrimitivePropertyConfiguration> configuration)
{
configuration()。ColumnName = propertyInfo.Name.ToUpper();
}
}

公共类UpperCaseTables:
IConfigurationConvention< Type,EntityTypeConfiguration>
{
public void Apply(Type typeInfo,Func< EntityTypeConfiguration> configuration)
{
if(typeInfo.BaseType == typeof(object))
{
configuration()。ToTable(typeInfo.Name.ToUpper());
}
}
}


 


〜罗文


I'm using EF4 with CodeFirst.

public class MyContext : DbContext
{    
   
protected override void OnModelCreating(ModelBuilder modelBuilder)
   
{
     
base.OnModelCreating(modelBuilder);

      modelBuilder
.Conventions.Remove<XXX>();
      modelBuilder
.Conventions.Add<XXX>());
   
}
}

What convention should I add or remove to make all DB identifiers (like column names, table names, stored procedures etc) to be in uppercase (or unquoted)?

Case-sentitive (quoted) identifiers in Oracle DB greatly damage DB user-friendliness.

Hi,

Here is some sample code. There is no need to remove the existing conventions as your configuration will override them.

public class MyContext : DbContext
{
  protected override void OnModelCreating(ModelBuilder modelBuilder)
  {
    base.OnModelCreating(modelBuilder);

    modelBuilder.Conventions.Add<UpperCaseTables>();
    modelBuilder.Conventions.Add<UpperCaseColumns>();
  }
}

public class UpperCaseColumns :
  IConfigurationConvention<PropertyInfo, PrimitivePropertyConfiguration>
{
  public void Apply(PropertyInfo propertyInfo, Func<PrimitivePropertyConfiguration> configuration)
  {
    configuration().ColumnName = propertyInfo.Name.ToUpper();
  }
}

public class UpperCaseTables :
  IConfigurationConvention<Type, EntityTypeConfiguration>
{
  public void Apply(Type typeInfo, Func<EntityTypeConfiguration> configuration)
  {
    if (typeInfo.BaseType == typeof(object))
    {
      configuration().ToTable(typeInfo.Name.ToUpper());
    }
  }
}

 

~Rowan