Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ';逆向工程&x27;模型优先-删除表和列前缀_C#_Sql_Entity Framework_Visual Studio 2013_Entity Framework 6 - Fatal编程技术网

C# ';逆向工程&x27;模型优先-删除表和列前缀

C# ';逆向工程&x27;模型优先-删除表和列前缀,c#,sql,entity-framework,visual-studio-2013,entity-framework-6,C#,Sql,Entity Framework,Visual Studio 2013,Entity Framework 6,我正在使用VS2013更新3的“逆向工程”模型第一个功能,从现有数据库开发EF模型。不幸的是,我不能完全控制数据库模式,它使用表和列前缀(例如tblPerson、cFirstName、clatname)。如果可能的话,我不希望将这些前缀复制到我的模型类和属性中。每当使用EF6重新生成模型时,是否有容易的方法来“删除”前缀,或者我最终会编写大量代码并使用拜占庭式的重新生成过程来实现这一点?我解决这个问题的方法是使用T4模板。我热衷于使用VS2013中现在提供的“从数据库首先反向工程代码”选项。不太

我正在使用VS2013更新3的“逆向工程”模型第一个功能,从现有数据库开发EF模型。不幸的是,我不能完全控制数据库模式,它使用表和列前缀(例如tblPerson、cFirstName、clatname)。如果可能的话,我不希望将这些前缀复制到我的模型类和属性中。每当使用EF6重新生成模型时,是否有容易的方法来“删除”前缀,或者我最终会编写大量代码并使用拜占庭式的重新生成过程来实现这一点?

我解决这个问题的方法是使用T4模板。我热衷于使用VS2013中现在提供的“从数据库首先反向工程代码”选项。不太清楚的是,您可以使用T4模板修改生成的代码。缺少的步骤是使用package manager控制台安装和修改默认T4模板-请参阅

因此,您在T4模板中基本上会得到类似的结果(粗略代码仅供说明):

var charsToTrim=“abcdefghijklmnopqrstuvxyz”.ToCharArray(); var className=code.Type(entityType).ToString().TrimStart(charsToTrim);
我不知道是否有一种编程方式可以做到这一点,但我以前必须在生成模型后编辑它(通过GUI或直接在XML中编辑) var charsToTrim = "abcdefghijklmnopqrstuvwxyz".ToCharArray(); var className = code.Type(entityType).ToString().TrimStart(charsToTrim);