asp.net – 在Entity Framework 5中重命名导航属性不会更新代码

我想重命名一个导航属性,并通过我给出的新名称在代码中访问该对象.我已将我的一个用户属性重命名为更有意义的名称而不是1,2,3 …等.

在此示例中,我已将OGSMUser5重命名为模型图中的OGSMUserResponsible.

然后我尝试在代码中访问它,但它找不到我重命名的属性OGSMUserResponsible.

@contImprovement.OGSMUserResponsible.FullName

当我查看从实体数据模型生成的模型中的代码时,我发现新重命名的模型的代码没有改变,这解释了为什么我无法访问它.

    public virtual OGSMUser OGSMUser { get; set; }
    public virtual OGSMUser OGSMUser1 { get; set; }
    public virtual OGSMUser OGSMUser2 { get; set; }
    public virtual OGSMUser OGSMUser3 { get; set; }
    public virtual OGSMUser OGSMUser4 { get; set; }
    public virtual OGSMUser OGSMUser5 { get; set; }

我已经看到了类似的问题,但我看到的答案是我无法相信的唯一选择.他们已经在部分类中手动创建了一个具有您想要的名称的新属性(我在导航属性中重命名为我的属性),并返回带有名称中的数字的导航属性以帮助清理它.我无法相信这是实现我所期待的最佳方式.

谢谢您的帮助.

最佳答案 你可能没有运行
T4 template transformations.

只需右键单击.tt文件(它们位于解决方案资源管理器树中的.edmx文件下)并运行它们.或者,您可以通过单击Visual Studio工具栏中的按钮来运行所有tt.

点赞