用于导航属性的Fluent API有两种方式

时间:2012-03-16 21:29:22

标签: entity-framework-4 ef-code-first fluent fluent-interface

public class ProductType
{
    public Guid ID { get; set }
    public string Name { get; set }
    public ICollection<ProductCategory> Categories { get; set }
}

public class ProductCategory
{
    public Guid ID { get; set }
    public string Name { get; set }
    public ProductType ProductType { get; set; }
}

配置

ProductTypeConfiguration

HasMany(p => p.Categories).WithRequired().WillCascadeOnDelete(false);

问题

请注意属性CategoriesProductType

关系是一个(ProductType)到很多(ProductCategory),但是ProductCategory与单个ProductType关联!

在我的数据库中创建了两个FKS !! 对于这种情况,配置(使用FluentAPI )将如何?

感谢!!!

1 个答案:

答案 0 :(得分:7)

HasMany(p => p.Categories)
    .WithRequired(c => c.ProductType) // specify inverse navigation property here
    .WillCascadeOnDelete(false);

如果省略WithRequired中导航属性的lambda,则EF假定Category.ProductType属于另一个第二关系 - 这是数据库表中第二个外键的原因。