在实体框架中编程重命名导航属性的部分类
本文关键字:属性 分类 导航 重命名 实体 框架 编程 | 更新日期: 2023-09-27 17:50:40
我在c#中工作,使用实体框架5,.NET 4.5
据我所知,实体的最佳实践是在扩展或修改基本功能时使用部分类,这样在重建模型时就不会丢失更改。
我有一个表,有两个fk到另一个表,如下所示:
ItemTable:
ID
Name
ParentChildTable:
ChildID (FK to ItemTable.ID)
ParentID (FK to ItemTable.ID)
在从数据库构建EDMX时,它正确地读取FK关系并创建适当的对象引用。不幸的是,导航属性的命名很糟糕,例如。ItemTable和ItemTable1。我想重命名导航属性,并且可以通过设计器这样做,但是想知道是否有一种方法可以在部分类中做到这一点。
我的最终目标只是让导航属性命名为ChildItem和ParentItem,而不是自动生成的ItemTable和ItemTable1。我完全理解如何创建部分类,装饰属性等。我只需要一个指针在正确的方向如何处理这个导航属性场景。
感谢您的宝贵时间。
您可以尝试@jere的答案,但添加一个[NotMapped]数据注释,因此EF在使用DB时不会尝试映射这些新属性。
我以前在递归关系中遇到过这个问题,但是为什么要在代码中更改它们呢?我认为你最好在设计器中自己做,这样更容易跟踪你所做的更改。
话虽如此,我认为你不能在代码中"重命名"属性。你可以这样做
public partial class ItemTable
{
public ItemTable ChildItem
{
get
{
return this.ItemTable;
}
}
public ItemTable ParentItem
{
get
{
return this.ItemTable1;
}
}
}