部分类以编程方式重命名实体框架中的导航属性5

时间:2013-01-03 19:54:18

标签: c# .net entity-framework entity-framework-5

我正在使用Entity Framework 5,.NET 4.5

在C#中工作

根据我的理解,Entity的最佳实践是在扩展或修改基本功能时使用部分类,这样在重建模型时不会丢失更改。

我有一个包含两个FK的表到另一个表,如下所示:

ItemTable:
ID
Name

ParentChildTable:
ChildID (FK to ItemTable.ID)
ParentID (FK to ItemTable.ID)

从数据库构建EDMX时,它会正确读入FK关系并创建适当的对象引用。不幸的是,导航属性名称很差,例如。 ItemTable和ItemTable1。我想重命名导航属性,并且可以通过设计器执行此操作,但是想知道是否有办法在分部类中执行此操作。

我的最终目标只是让导航属性名为ChildItem和ParentItem,而不是自动生成的ItemTable和ItemTable1。我完全理解如何创建部分类,装饰属性等。我只需要一个正确方向的指针来处理这个导航属性场景。

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

我在使用递归关系之前遇到过这个问题,但为什么要在代码中更改它们?我认为你在设计师本身做得更好,它可以更容易地跟踪你改变的内容。

话虽如此,我认为你不能在代码中“重命名”这些属性。你可以做这样的事情

public partial class ItemTable
{
    public ItemTable ChildItem
    {
       get
       {
          return this.ItemTable;
       }
    }

    public ItemTable ParentItem
    {
       get
       {
          return this.ItemTable1;
       }
    }
}

答案 1 :(得分:0)

您可以尝试@jere的答案,但添加[NotMapped]数据注释,因此当EF与数据库一起使用时,EF不会尝试映射这些新属性。