Jul*_*ius 28 entity-framework parent-child self-reference ef-code-first entity-framework-4.1
我阅读了很多程序员的帖子,这些帖子遇到了Unable,以确定依赖操作的有效排序.在实体框架中使用自引用关系时,由于外键约束,模型要求或存储生成的值 -例外,可能存在依赖关系.
我正在努力建立一个亲子关系:
public class Category {
public int CategoryId { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
public Category Parent { get; set; }
public List<Category> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我使用的配置(Fluent API):
Property(c => c.ParentId).IsOptional();
HasMany(c => c.Children).WithOptional(c => c.Parent).HasForeignKey(c => c.ParentId);
//HasOptional(c => c.Parent).WithMany(c => c.Children).HasForeignKey(c => c.ParentId);
Run Code Online (Sandbox Code Playgroud)
当我尝试保存这样的新类别时,HasMany()和HasOptional()配置都会导致"无法确定依赖操作的有效排序..."异常:
context.Categories.Add(new Category { Name = "test" });
Run Code Online (Sandbox Code Playgroud)
我不明白为什么EF不插入带有null parentId的Category.数据库允许ParentId外键为null.
你能告诉我怎么做吗?
Sla*_*uma 34
您必须将ParentId类别类中的可定义为nullable,以将其用作可选关系的外键属性:
public int? ParentId { get; set; }
Run Code Online (Sandbox Code Playgroud)
一个int属性不能取的值null,因此不能表示NULL为数据库中的列的值.
| 归档时间: |
|
| 查看次数: |
15661 次 |
| 最近记录: |