在EF5中定义模型时遇到问题。我想在数据库中将ParentId
作为外键,但我收到错误:
System.Data.Entity.Edm.EdmAssociationType ::多重性与关系“Category_Parent”中角色“Category_Parent_Target”中的引用约束冲突。由于从属角色中的所有属性都是不可为空的,因此主要角色的多重性必须为“1”。
这是我的模特:
public class Category
{
public Category()
{
this.Childs = new HashSet<Category>();
}
public int CategoryId { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
public virtual Category Parent { get; set; }
public virtual ICollection<Category> Childs { get; set; }
}
和
modelBuilder.Entity<Category>()
.HasOptional(c => c.Parent)
.WithMany(c => c.Childs)
.HasForeignKey(d => d.ParentId);
答案 0 :(得分:1)
如果Category
可能有Parent
,也可能没有,ParentId
可能有也可能没有值。
所以,让ParentId
可以为空:
public int? ParentId { get; set; }