我正在使用EF 6.1新功能 - 代码优先来自现有数据库 - 我想在每个导航属性之外添加一个外键。 我从nuget添加了默认的T4模板,但我无法弄清楚如何编辑它。我想这应该是一个非常常见的任务,但我无法找到任何例子...... 谢谢 利玛
答案 0 :(得分:1)
您可以按照here的说明修改用于生成实体类的T4模板。请按照BriceLambson于4月28日下午6:22的评论说明进行操作
您的项目需要以下结构:
文件EntityType.cs.t4必须包含以下link的内容。
之后,您可以更改以下部分:
<#
}
foreach (var navigationProperty in entityType.NavigationProperties)
{
if (!first)
{
WriteLine(string.Empty);
}
else
{
first = false;
}
#>
public virtual <#= code.Type(navigationProperty) #> <#= code.Property(navigationProperty) #> { get; set; }
<#
}
#>
这样的事情:
<#
}
foreach (var navigationProperty in entityType.NavigationProperties)
{
if (!first)
{
WriteLine(string.Empty);
}
else
{
first = false;
}
#>
public int <#= code.Property(navigationProperty) #>ID { get; set; }
[ForeignKey("<#= code.Property(navigationProperty) #>ID")]
public virtual <#= code.Type(navigationProperty) #> <#= code.Property(navigationProperty) #> { get; set; }
<#
}
#>
之后,您可以首先使用现有数据库中的代码生成实体。
希望这有帮助
不是手动创建目录结构,而是可以像Matteo Sganzetta那样安装nuget包EntityFramework.CodeTemplates.CSharp