将0+关联映射到实体

时间:2013-04-08 14:20:22

标签: c# entity-framework entity-framework-4

我正在使用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);
      }
}
  1. 我希望Car成为'主'实体,所以如果我想添加一部分,我必须这样做:

    car.Add(部分);

  2. 默认情况下,或者每次装车时,部件是否会延迟装载,它会装载所有部件吗?我希望它默认是懒惰加载,除非我明确地想要所有部分。

  3. 出于学习目的,如果我不想要#1,即我希望能够做到这一点:

    part.Car = car //保存部分 即保存一部分没有

0 个答案:

没有答案