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

时间:2012-09-03 18:18:40

标签: asp.net entity-framework

我想重命名一个导航属性,并通过我给出的新名称在代码中访问该对象。我已将我的一个用户属性重命名为更有意义的名称而不是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; }

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可能没有运行T4 template transformations

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

T4 templates run in Visual Studio

相关问题