EF Code First 外键无导航属性,但有父集合属性

7

我的问题类似于这个,但在这种情况下,父级别有一个引用子项的集合属性:

public class Parent
{
    public int Id { get; set; }
    public virtual ICollection<Child> Children { get; set; }
}

public class Child
{
    public int Id { get; set; }
    public int ParentId { get; set; }
}

就像前面提到的问题一样,我不需要在Child上有一个Parent属性。

那么以下语法应该如何修改以定义这种关系呢?

modelBuilder.Entity<Child>()
    .HasRequired(c => c.Parent)   <---- no such property "Parent"
    .WithMany(p => p.Children)
    .HasForeignKey(c => c.ParentId); 
1个回答

12
您可以在不传递参数的情况下使用 WithRequired 方法:
modelBuilder.Entity<Parent>() 
    .HasMany(p => p.Children)
    .WithRequired()
    .HasForeignKey(c => c.ParentId); 

如果没有反向导航属性,With部分可以留空。


啊——我没意识到关联可以在父级端定义。这在实践中可行吗(EF在创建、删除等操作时维护关系)? - BCA
是的,在您的数据库中将创建一对多关系,因此当您执行所有CRUD操作时,它将维护关系。 - ocuenca

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接