2011-09-20 118 views
0

我需要如何正确EF 4.1映射这种结构有些帮助:在EF 4.1中使用流畅映射映射复杂树对象?

public class Menu: Entity 
    { 
     public string Title { get; set; }   
     public virtual ICollection<MenuItem> MenuItems { get; set; } 
    } 

public class MenuItem: Entity 
    { 
     public string Icon { get; set; } 
     public string Text { get; set; } 
     public string Action { get; set; } 
     public string Controller { get; set; } 
     public string Parameters { get; set; } 
     public virtual MenuItemType Type { get; set; } 
     public virtual Guid? ContextMenuId { get; set; } 
     public virtual Menu ContextMenu { get; set; } 
     public virtual Guid? ParentMenuItemId { get; set; } 
     public virtual MenuItem ParentMenuItem { get; set; } 
     public virtual ICollection<MenuItem> ChildMenuItems { get; set; } 
    } 

实体基类有对enitties的ID,我也有一个构建为重点的映射基映射类。以下是我迄今为止的MenuItem类:

public class MenuItemMapping : EntityConfiguration<MenuItem> 
    { 
     public MenuItemMapping() 
     { 
      HasOptional(mi => mi.ParentMenuItem).WithMany(p => p.ChildMenuItems).HasForeignKey(mi => mi.ParentMenuItemId).WillCascadeOnDelete(false); 
      HasOptional(mi => mi.ContextMenu).WithMany().HasForeignKey(mi => mi.ContextMenuId).WillCascadeOnDelete(false); 
     } 
    } 

我担心的是在文本菜单,因为它是一个菜单类型,不知道最好的方式来处理这种类型的O映射。

更新

好吧,我添加了菜单的菜单项的集合的额外的映射(在MenuMapping类类似于上述映射类),它似乎是好了,但我还是想知道我所做的是否正确。

回答

0

显然,我的映射很好。我想我会遇到循环引用的问题。