我是EF的新手,并且在尝试使用Fluent API创建单向导航关联(0到多个)时遇到问题。以下是类的简化版本:
public partial class Company
{
public int Id { get; set; }
// "Company" is NOT REQUIRED to have any BillingInfo records/objects
public virtual IList<BillingInfo> BillingInfos { get; set; }
}
public partial class BillingInfo
{
public int Id { get; set; }
// A "BillingInfo" requires ONE "Company"
public int Company_Id { get; set; }
}
我在使用EF 6.1 Code First时启用了迁移以及SQL Server 2012.
在我的派生的EntityTypeConfiguration类中,&#34;公司&#34;和&#34; BillingInfo&#34;,我已经尝试过每一种我能想到的方式:
我尝试的所有方法,只能让我部分到处。我最接近的就是这个(但唯一缺少的是没有创建外键约束):
class CompanyConfig : EntityTypeConfiguration<Company>
{
public CompanyConfig()
{
this.HasOptional(company => company.BillingInfos)
.WithMany()
.Map(m => m.MapKey("Company_Id"));
}
}
任何想法???
答案 0 :(得分:-2)
我认为您应该使用以下代码:
private class CompanyMapping : EntityTypeConfiguration<Company>
{
public CompanyMapping()
{
this.HasMany(o => o.BillingInfos).WithOptional().HasForeignKey(fk => fk.Company_Id);
}
}
private class BillingInfoMapping : EntityTypeConfiguration<BillingInfo>
{
public BillingInfoMapping()
{
this.HasOptional(o => o.Company).WithMany(c=>c.BillingInfos).HasForeignKey(fk => fk.Company_Id);
}
}