在EF 6中使用DB first方法使用外键名称生成实体(导航)属性名称而不是Entity1,Entity2等格式时,我们如何获取模板脚本?
这是一个问题的示例是,如果您的表具有createdby,updayedby等列,并且这些列具有用户表的外键,EF将使用外键的字母顺序生成表的属性实体,您最终将User,User1作为属性。当您稍后将新FK添加到用户表时,这会成为一个大问题,其名称会导致User1不再是updateby用户,因为新FK出现在之前生成的User1的更新后的FK之上!
谢谢!
答案 0 :(得分:1)
我知道有一些(棘手的)方法可以做到这一点......亲自操作驱动EDMX创建的模板。也许有人能够指出你。但也请记住第三方工具。 LLBLGen Pro可以轻松完成此任务。以下是相关文档:https://www.llblgen.com/Documentation/5.3/Designer/Functionality%20Reference/ProjectSettings.htm#name-construction-name-patterns
答案 1 :(得分:1)
对于首先来自数据库的代码,您可以使用https://www.nuget.org/packages/EntityFramework.CodeTemplates.CSharp来添加用于项目的tt模板。
答案 2 :(得分:0)
您可以编辑生成的EDMX文件/图表,并将导航属性重命名为适合其角色的名称。因此,您可以简单地将其重命名为User1
和User2
,而不是UpdatedByUser
和CreatedByUser
。