我有一个导航菜单提供者,我正在尝试使用一个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方法,但每次尝试都会导致出现错误或者什么也不改变。我相信我只是“做错了什么”。
谢谢!
DbContext
的类中。在 EF6 中,参数的类型应为DbModelBuilder
。 - Peppe L-G