我正在使用Entity Framework 4.1,我想映射以下内容。
Car
- Car_ID
- Name
- Created
Part
- Part_ID
- Car_ID
- Name
- Created
所以'Car'可以有0个或更多部分。并且一部分必须与汽车相关联。
public class Car
{
[Key]
[Column("Car_Id")]
public int Id {get;set;}
..
..
public ICollection<Parts> Parts { get; set; }
}
public class Part
{
[Key]
[Column("Part_Id")]
public int Id {get;set;}
..
..
public Car Car { get; set; }
}
我的上下文如下:
public class MyContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new CarConfiguration());
modelBuilder.Configurations.Add(new PartConfiguration());
}
}
public class CarConfiguration : EntityTypeConfiguration<Car>
{
public DealerDemoEnrollmentConfiguration()
{
this.ToTable("Cars", SchemaName);
this.HasKey(x => x.Id);
this.HasMany(x => x.Parts);
}
}
public class PartConfiguration : EntityTypeConfiguration<Part>
{
public DealerDemoEnrollmentConfiguration()
{
this.ToTable("Parts", SchemaName);
this.HasKey(x => x.Id);
this.HasRequired(x => x.Car);
}
}
我希望Car成为'主'实体,所以如果我想添加一部分,我必须这样做:
car.Add(部分);
默认情况下,或者每次装车时,部件是否会延迟装载,它会装载所有部件吗?我希望它默认是懒惰加载,除非我明确地想要所有部分。
出于学习目的,如果我不想要#1,即我希望能够做到这一点:
part.Car = car //保存部分 即保存一部分没有