我需要一些帮助,了解如何在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; }
}
Entity基类具有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);
}
}
我关心的是ContextMenu,因为它是一个菜单类型,并不确定处理这种类型映射的最佳方法。
更新
好吧,我为Menuitems的集合添加了一个额外的Menu(在类似于上面的映射类的MenuMapping类中)的映射,它似乎没问题,但我还是想知道我在做什么是对的。
答案 0 :(得分:0)
显然,我的映射很好。我以为我会遇到循环引用的问题。