一对多与循环关系

时间:2016-05-24 12:20:55

标签: c# entity-framework entity-framework-4

我正在尝试构建一个包含许多域和菜单的结构。 所有菜单都与具有DomainID的域相关,因此每个域都可以管理所有者。

此外,域名所有者可以选择在菜单中显示的位置,它可能位于Heade或页脚区域。

这是我的模特

public class Domain
    {
        [Key]
        public int DomainID { get; set; }
        public string Name { get; set; }
        public string Template { get; set; }
        public string BookingType { get; set; }

        public int? HeaderMenuID { get; set; }
        public int? FooterMenuID { get; set; }

        public virtual Menu HeaderMenu {get;set;}
        public virtual Menu FooterMenu { get; set; }

        public virtual List<DomainTranslation> DomainTranslations { get; set; }
        public virtual List<Language> Languages { get; set; }
        public virtual List<User> Users { get; set; }
        public virtual List<Form> Forms { get; set; }
        public virtual List<Car> Cars { get; set; }
        public virtual List<Menu> Menus { get; set; }
    }



public class Menu
{
    [Key]
    public int MenuID { get; set; }
    public int DomainID { get; set; }
    public int? ParentMenuID { get; set; }

    [ForeignKey("ParentMenuID")]
    public virtual Menu Parent { get; set; }


    public virtual List<MenuTranslation> MenuTranslations { get; set; }
    public virtual Domain Domain { get; set; }
}

当我更新数据库时,菜单数据库上的预期文件是:

[MenuID]
[DomainID]
[ParentMenuID]

但它正在填充

[MenuID]
[DomainID]
[ParentMenuID]
[Domain_DomainID]
[Domain_DomainID1]

因此,Domain_DomainID和DomainDomainID1字段正在神秘地填充。

有趣的是:如果删除Virtual HeaderMenu和Virtual FooterMenu,菜单中的新字段([Domain_DomainID],[Domain_DomainID1])将消失。

我做错了什么?

0 个答案:

没有答案