我正在使用Entity Framework工具从现有数据库中反向生成代码。我的数据库中有多个模式,但我只想为dbo模式生成类。我该如何进行自定义?
我正在使用Entity Framework工具从现有数据库中反向生成代码。我的数据库中有多个模式,但我只想为dbo模式生成类。我该如何进行自定义?
你需要编辑反向工程模板。我已经为Entity Framework 6完成了以下操作。
在Context.tt中,模式当前不可用,因此必须手动删除不需要的代码。
在Entity.tt和Mapping.tt中,你必须更改这里的代码。
var efHost = (EfTextTemplateHost)Host;
var code = new CodeGenerationTools(this);
为了
var efHost = (EfTextTemplateHost)Host;
if((string)efHost.TableSet.MetadataProperties["Schema"].Value == "dbo"){
var code = new CodeGenerationTools(this);
然后在这两个文件的结尾处放置一个闭合括号。
<#
}
#>
将“dbo”更改为您想要的任何内容。
您可以使用T4模板(在实体框架菜单上>自定义反向工程模板)。 在这些模板上,您可以测试模式:如果(efHost.TableSet.MetadataProperties [“Schema”] .Value ==“正确的模式”)//生成