C# 具有非标准命名约定的数据库的POCO别名

C# 具有非标准命名约定的数据库的POCO别名,c#,entity-framework,entity-framework-4.1,poco,C#,Entity Framework,Entity Framework 4.1,Poco,我有一个我正在使用的数据库,它的每一列都被命名为“product\u id”、“event\u tracking\u detail\u type”等 它不使用标题大小写,而是全部小写,名称之间有uu。我已经关闭了代码生成并使用了POCO生成器,但我希望POCO的名称与ProductId、ManufacturerImage(而不是manufacturer_image)一致 有没有办法让POCO有不同的名称,然后数据库中实际有什么,比如别名之类的 我的理由是让代码与专有名称交互,然后再更改数据库的列

我有一个我正在使用的数据库,它的每一列都被命名为“product\u id”、“event\u tracking\u detail\u type”等

它不使用标题大小写,而是全部小写,名称之间有uu。我已经关闭了代码生成并使用了POCO生成器,但我希望POCO的名称与ProductId、ManufacturerImage(而不是manufacturer_image)一致

有没有办法让POCO有不同的名称,然后数据库中实际有什么,比如别名之类的

我的理由是让代码与专有名称交互,然后再更改数据库的列名。

看一看。您可以使用
属性

[Column(Name="product_id")]
Int32 ProductId;
或者,您可以使用()

modelBuilder.Entity()
.Property(entity=>entity.ProductId)
.HasColumnName(“产品id”)

如果您使用的是T4模板,则有一个函数
WriteProprety
您可以修改该函数以写出属性。您可以对其进行如下修改:

void WriteProperty(string accessibility, string type, string name, string getterAccessibility,  string setterAccessibility)
{
  //Start New Stuff
  string[] names = name.Split('_');
  names = names.ToList().Select(x => char.ToUpper(x[0]) + x.Substring(1)).ToArray();
  string fixedName = string.Join("", names);
 //End New Stuff
#>
  [Column(Name="<#=name>")]
  <#=accessibility#> <#=type#> <#=fixedName#> { <#=getterAccessibility#>get; <#=setterAccessibility#>set; }
<#+
}   
void WriteProperty(字符串可访问性、字符串类型、字符串名称、字符串getterAccessibility、字符串setterAccessibility)
{
//开始新事物
string[]name=name.Split(“”);
names=names.ToList().Select(x=>char.ToUpper(x[0])+x.Substring(1)).ToArray();
string fixedName=string.Join(“,name”);
//结束新事物
#>
[列(名称=”)]
{get;set;}

有没有一种更通用的方法来处理每一列和每一个表呢?我有50多个表要处理:S
void WriteProperty(string accessibility, string type, string name, string getterAccessibility,  string setterAccessibility)
{
  //Start New Stuff
  string[] names = name.Split('_');
  names = names.ToList().Select(x => char.ToUpper(x[0]) + x.Substring(1)).ToArray();
  string fixedName = string.Join("", names);
 //End New Stuff
#>
  [Column(Name="<#=name>")]
  <#=accessibility#> <#=type#> <#=fixedName#> { <#=getterAccessibility#>get; <#=setterAccessibility#>set; }
<#+
}