我有一个导航菜单提供程序,我正在尝试使用 MenuItem 对象移动到 EF Code First(EF4、CPT5)。与其他任何事情相比,这更像是一种练习,以适应与 EF Code First 建立不同的关系。
我的 MenuItem 有一个名为 SubMenuItems 的字段,它是 MenuItems 的集合。当我使用 EF Code First(不修改类)时,为 MenuItems 创建的表会为父菜单项添加一列。菜单将正确显示,但这消除了使菜单项出现在多个子菜单中的任何能力。告诉 EF Code First 我希望每个 MenuItem 成为独立项并创建另一个将菜单项的 SubMenuItems 链接到其他 MenuItems 的表的正确方法是什么?
public class MenuItem
{
public int ID { get; set; }
public virtual SubMenuItems { get; set; }
public string Text { get; set; }
public string Controller { get; set; }
public string Action { get; set; }
public bool IsRoot { get; set; }
public bool RequiresAuthentication { get; set; }
public virtual ICollection<MenuPermission> RequiredPermissions { get; set; }
public bool HiddenIfAuthenticated { get; set; }
public int DisplayOrder { get; set; }
}
...
public class MyDbContext : DbContext
{
public DbSet<MenuItems> MenuItems { get; set; }
public DbSet<MenuItemPermission> MenuItemPermissions { get; set; }
...
}
我试图覆盖 OnModelCreating,但每次尝试都以被破坏或做与我没有接触 OnModelCreating 的情况完全相同的事情告终。我确定我只是“做错了”。
谢谢!