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文件。未完待續。