0
我正在从现有的pgsql数据库中生成POCO。EF代码优先逆向工程自定义模板(EF电动工具Beta 2)
我想把生成波苏斯到自己的C#类库和的DbContext和映射到不同的 项目,所以我的波苏斯没有全球化志愿服务青年到什么EF相关。
我想修改Context.tt模板以在OnModelCreating()期间的运行时指定表模式,因为在生成的实体上使用[Table]属性会引入到EF库的硬链接。
我的问题是,我目前无法从当前的EnitySet中检索模式名称。 这里是我到目前为止已经做了摘录:
var efHost = (EfTextTemplateHost)Host;
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
<#
foreach (var set in efHost.EntityContainer.BaseEntitySets.OfType<EntitySet>())
{
#>
modelBuilder.Configurations.Add(new <#= set.ElementType.Name #>Map());
modelBuilder.Entity<<#= set.ElementType.Name #>>().ToTable("<#= set.Name #>", "<#=????#>");
<#
}
#>
}
此时可用的唯一对象是EfTextTemplateHost的一个实例。
任何帮助赞赏。
TIA。
编辑:我找到了检索模式的方法(set.MetadataProperties [“Schema”]。Value ??“”),但值始终为空! 这可能意味着反向工程代码优先工具不会将值赋予模板主机。我可能会结束解析一个edmx文件。未完待续。