我正在使用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。我完全理解如何创建部分类,装饰属性等。我只需要一个正确方向的指针来处理这个导航属性场景。
感谢您的时间。
答案 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不会尝试映射这些新属性。