我的問題很簡單:在這裏我有兩個一對多的關係類。 讓我們的樣本:從朱莉婭·勒曼的書採取「編程實體框架:代碼優先」 樣品實體框架:我應該提供雙面關係配置嗎?
public class Destination
{
public int DestinationId { get; set; }
public string Name { get; set; }
public string Country { get; set; }
public string Description { get; set; }
public byte[] Photo { get; set; }
public ICollection<Lodging> Lodgings { get; set; }
public Destination()
{
Lodgings = new List<Lodging>();
}
}
public class Lodging
{
public int LodgingId { get; set; }
public string Name { get; set; }
public string Owner { get; set; }
public bool IsResort { get; set; }
public decimal MilesFromNearestAirport { get; set; }
public Destination Destination { get; set; }
public int DestinationId { get; set; }
}
這裏配置有FluentApi:
public class LodgingConfiguration : EntityTypeConfiguration<Lodging>
{
public LodgingConfiguration()
{
Property(p => p.Name).IsRequired().HasMaxLength(200);
HasRequired(p => p.Destination).WithMany(p => p.Lodgings);
}
}
public class DestinationConfiguration : EntityTypeConfiguration<Destination>
{
public DestinationConfiguration()
{
Property(p => p.Name).IsRequired().HasMaxLength(100);
Property(p => p.Description).HasMaxLength(500);
Property(p => p.Photo).HasColumnType("image");
HasMany(p=>p.Lodgings).WithRequired(l=>l.Destination);
}
}
我想這行
HasRequired(p => p.Destination).WithMany(p => p.Lodgings);
and
HasMany(p=>p.Lodgings).WithRequired(l=>l.Destination);
提供目的地和住宿之間的關係相同的結果。
如果我只定義了其中一個規則,它也可以很好地工作。 在雙方定義相同的規則還是單方面聲明是好的是一個好習慣?