C# 实体框架一对多合一表 [表格(“菜单”)] 公共类菜单 { /// ///表“菜单”,ID /// 私人内部ID; [关键] [显示(Name=“ID”)] [数据库生成(DatabaseGeneratedOption.Identity)] 公共整数ID { 获取{return\u ID;} 设置{u ID=value;} } /// ///表“菜单”,菜单名 /// 私有字符串_MenuName; [显示(Name=“MenuName”)] 公共字符串菜单名 { 获取{return\u MenuName;} 设置{u MenuName=value;} } /// ///表“菜单”,ParentID /// 私有int_ParentID; [显示(Name=“ParentID”)] 公共int父ID { 获取{return\u ParentID;} 设置{u ParentID=value;} } }
我有这张桌子。我想在ParentID上加入“一对多”。我想从列表中选择父id,并想通过实体框架或fluent api来实现,但对它们不太了解。您可能希望执行以下操作:C# 实体框架一对多合一表 [表格(“菜单”)] 公共类菜单 { /// ///表“菜单”,ID /// 私人内部ID; [关键] [显示(Name=“ID”)] [数据库生成(DatabaseGeneratedOption.Identity)] 公共整数ID { 获取{return\u ID;} 设置{u ID=value;} } /// ///表“菜单”,菜单名 /// 私有字符串_MenuName; [显示(Name=“MenuName”)] 公共字符串菜单名 { 获取{return\u MenuName;} 设置{u MenuName=value;} } /// ///表“菜单”,ParentID /// 私有int_ParentID; [显示(Name=“ParentID”)] 公共int父ID { 获取{return\u ParentID;} 设置{u ParentID=value;} } },c#,entity-framework,C#,Entity Framework,我有这张桌子。我想在ParentID上加入“一对多”。我想从列表中选择父id,并想通过实体框架或fluent api来实现,但对它们不太了解。您可能希望执行以下操作: [Table("Menus")] public class Menus { /// <summary> /// Table "Menus", ID /// </summary> private int _ID; [Key] [Display(Name = "I
[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; }
}
}
[表格(“菜单”)]
公共类菜单
{
[关键]
公共int ID{get;set;}
公共字符串菜单名{get;set;}
[外键(“父菜单”)]
public int ParentID{get;set;}
公共虚拟菜单父菜单{get;set;}
公共虚拟列表子菜单{get;set;}
}
一切正常。谢谢
我删除表中的所有行,然后创建迁移。但该属性必须为空:
[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; }
}
对但是ID和ParentID有一个问题:ALTER TABLE语句与外键同表约束“FK_dbo.Menus_dbo.Menus_ParentID”冲突。冲突发生在数据库“aspnet-Library123-20131125132608”表“dbo.Menus”列“ID”中。
public int? ParentID { get; set; }