2013-11-25 47 views
0
[Table("Menus")] 
public class Menus 
{ 
    /// <summary> 
    /// Table "Menus", ID 
    /// </summary> 
    private int _ID; 
    [Key] 
    [Display(Name = "ID")] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int ID 
    { 
     get { return _ID; } 
     set { _ID = value; } 
    } 

    /// <summary> 
    /// Table "Menus", MenuName 
    /// </summary> 
    private string _MenuName; 
    [Display(Name = "MenuName")] 
    public string MenuName 
    { 
     get { return _MenuName; } 
     set { _MenuName = value; } 
    } 

    /// <summary> 
    /// Table "Menus", ParentID 
    /// </summary> 
    private int _ParentID; 
    [Display(Name = "ParentID")] 
    public int ParentID 
    { 
     get { return _ParentID; } 
     set { _ParentID = value; } 
    } 
} 

我有这张表。我想在ParentID中使用“一对多”。我想从列表中选择父ID,并希望通过Entity框架或流利的API做到这一点,但不知道它们是否合适。实体框架一对多一对一

回答

1

你会想要做这样的事情:

[Table("Menus")] 
public class Menus 
{ 
    [Key] 
    public int ID { get; set; } 

    public string MenuName { get; set; } 

    [ForeignKey("ParentMenu")] 
    public int ParentID { get; set; } 

    public virtual Menu ParentMenu { get; set; } 

    public virtual List<Menu> ChildMenus { get; set; } 
} 
+0

是的。但它是ID和ParentID – struggleendlessly

+0

问题我有这个错误:ALTER TABLE语句与FOREIGN KEY SAME TABLE约束“FK_dbo.Menus_dbo.Menus_ParentID”冲突。冲突发生在数据库“aspnet-Library123-20131125132608”,表“dbo.Menus”,列'ID'。 – struggleendlessly

0

一切工作。谢谢。 我删除了我的表中的所有行,然后创建迁移。但该属性必须为空:

public int? ParentID { get; set; }