C# 用于友好导航属性的自定义代码生成策略

C# 用于友好导航属性的自定义代码生成策略,c#,entity-framework,t4,dbcontext,ef-database-first,C#,Entity Framework,T4,Dbcontext,Ef Database First,我正在使用EF6执行DbContext和POCO对象的DB第一代,与许多其他对象一样,导航属性名称在描述与其他表的关系时没有帮助 e、 g如果一个人有家庭和工作地址,它将反映在对象中,如 public class Person { public virtual DbSet<Address> Address; public virtual DbSet<Address> Address1; } 公共类人物{ 公共虚拟数据库集 我可以用什么最简单的方法替换上

我正在使用EF6执行DbContext和POCO对象的DB第一代,与许多其他对象一样,导航属性名称在描述与其他表的关系时没有帮助

e、 g如果一个人有家庭和工作地址,它将反映在对象中,如

public class Person {
    public virtual DbSet<Address> Address; 
    public virtual DbSet<Address> Address1;
}
公共类人物{
公共虚拟数据库集

我可以用什么最简单的方法替换上面的内容

public class Person {
    public virtual DbSet<Address> Home; 
    public virtual DbSet<Address> Work;
}
公共类人物{
公共虚拟数据库集家庭;
公共虚拟数据库集工作;
}
并且能够在需要从头开始时重新生成edmx文件(即,通过vs2013 GUI手动修改100个表不是我想要的)


我已经浏览了论坛,并开始使用debug T4模板工具,但希望有一个比DIY更简单的工具。

如果你不需要edmx,那么你可以删除它,并首先使用将数据库反转为代码。之后使用任何有助于属性重命名的工具,例如

你是否同时使用:edmx和POCO对象?yes、 据我所知,edmx是用来创建poco对象的,所以我不知道如何在没有其他对象的情况下创建一个对象?通过vs添加“ADO.Net实体数据模型”,它通过edmx和poco对象为我创建DbContext。此时,我认为从DB优先迁移到代码优先已经超出了范围。理想情况下,我会我想朝这个方向走,但现在我更愿意编辑T4,为edmx生成友好的导航属性。应该不会太难吧?我不能给你足够的代表性…我不知道代码优先反向工程从数据库优先的模式转移到数据库优先的模式有多容易。谢谢你!你让我度过了美好的一天!(我只花了1小时就学会了如何切换、切换、测试,现在我可以摆脱所有用于数据注释的元数据文件)酷!是的,如果你的模型和数据库没有太大差异,这很容易做到。我对一些导航属性有一个小问题,因为它们由于某种原因没有标记为虚拟,因此延迟加载对它们不起作用。