EF 代码首先重命名生成的 POCO 中的属性 类
EF Code First renaming of properties in generated POCO classes
我正在使用实体数据模型向导(数据库中的代码优先)生成 dbcontext 和 POCO 类。不幸的是,我 运行 在一个非常旧的数据库上,所有数据库列的名称都是小写的,经常带有下划线,在 C# 中看起来像垃圾。如果代码生成器将属性 [Column("column_name")] 放在数据库中未大写的所有内容之上,或者如果有一种简单的方法可以告诉visual studio 查看文件并为所有还没有它的小写属性添加该属性(甚至只是所有属性句点)。
我看过一些 T4 的东西,反向 poco 生成器等。但是启动它似乎和手动重命名属性一样耗时 运行。当您在 VS 添加新项 window 中 select "ADO.NET Entity Data Model" 时运行的(实体数据模型向导)代码的源是否在任何地方可用,以便我可以从已经工作的东西开始?
或者有人知道需要
的史诗 find/replace
public string n_addr1 { get; set; }
并给予
[Column("n_addr1")]
public string N_addr1 { get; set; }
不知道 n_addr1 叫什么,这意味着它必须匹配 public 字符串 and/or {get;设置;}
我做了类似的事情,我打算 post 我用来找到 class 的 "name" 的代码。我进行了编辑,以便它可以与您传递的文件名一起使用。在我的 classes 之一上进行了测试,这是有效的。
var fileName = @"YOUR FILE NAME";
StringBuilder builder = new StringBuilder();
using (StreamReader sr = new StreamReader(fileName))
{
while (!sr.EndOfStream)
{
var line = sr.ReadLine();
var match = Regex.Match(line, @"{\s?get;\s?set;\s?}");
if (match.Success)
{
var split = Regex.Split(line, @"{\s?get;\s?set;\s?}");
var declaration = split[0].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var last = declaration.Count();
var name = declaration[last - 1];
builder.AppendLine(string.Format("[Column(\"{0}\")]", name));
}
builder.AppendLine(line);
}
}
我正在使用实体数据模型向导(数据库中的代码优先)生成 dbcontext 和 POCO 类。不幸的是,我 运行 在一个非常旧的数据库上,所有数据库列的名称都是小写的,经常带有下划线,在 C# 中看起来像垃圾。如果代码生成器将属性 [Column("column_name")] 放在数据库中未大写的所有内容之上,或者如果有一种简单的方法可以告诉visual studio 查看文件并为所有还没有它的小写属性添加该属性(甚至只是所有属性句点)。
我看过一些 T4 的东西,反向 poco 生成器等。但是启动它似乎和手动重命名属性一样耗时 运行。当您在 VS 添加新项 window 中 select "ADO.NET Entity Data Model" 时运行的(实体数据模型向导)代码的源是否在任何地方可用,以便我可以从已经工作的东西开始?
或者有人知道需要
的史诗 find/replacepublic string n_addr1 { get; set; }
并给予
[Column("n_addr1")]
public string N_addr1 { get; set; }
不知道 n_addr1 叫什么,这意味着它必须匹配 public 字符串 and/or {get;设置;}
我做了类似的事情,我打算 post 我用来找到 class 的 "name" 的代码。我进行了编辑,以便它可以与您传递的文件名一起使用。在我的 classes 之一上进行了测试,这是有效的。
var fileName = @"YOUR FILE NAME";
StringBuilder builder = new StringBuilder();
using (StreamReader sr = new StreamReader(fileName))
{
while (!sr.EndOfStream)
{
var line = sr.ReadLine();
var match = Regex.Match(line, @"{\s?get;\s?set;\s?}");
if (match.Success)
{
var split = Regex.Split(line, @"{\s?get;\s?set;\s?}");
var declaration = split[0].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var last = declaration.Count();
var name = declaration[last - 1];
builder.AppendLine(string.Format("[Column(\"{0}\")]", name));
}
builder.AppendLine(line);
}
}