1

我在 C# 中工作,使用 Entity Framework 5、.NET 4.5

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

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

ItemTable:
ID
Name

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

从数据库构建 EDMX 时,它会正确读取 FK 关系并创建适当的对象引用。不幸的是,导航属性命名不佳,例如。项目表和项目表 1。我想重命名导航属性,并且可以通过设计器这样做,但想知道是否有办法在部分类中做到这一点。

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

谢谢你的时间。

4

2 回答 2

0

我以前在递归关系中遇到过这个问题,但是为什么要在代码中更改它们呢?我认为您最好在设计器本身中执行此操作,它也可以更轻松地跟踪您所做的更改。

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

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

    public ItemTable ParentItem
    {
       get
       {
          return this.ItemTable1;
       }
    }
}
于 2013-01-03T20:08:24.700 回答
0

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

于 2013-09-26T18:16:51.220 回答