EF CodeFirst 学习 1 - 用fluent API设置元数据,

用 Fluent API 设置元数据

 

 

http://agilenet.wordpress.com/2011/04/11/entity-framework-4-1-rc-with-an-existing-database/

 

-

 

 

 

public class Company
02 {
03 public int Id { get; set; }
04 public string CompanyName { get; set; }
05 public Country HomeCountry { get; set; }
06 }
07
08 public class Country
09 {
10 public int Id { get; set; }
11 public string Code { get; set; }
12 public string Name { get; set; }
13 }

 

 

 

public class MyContext: DbContext
02 {
03
04 public DbSet<Company> Companies { get; set; }
05 public DbSet<Country> Countries { get; set; }
06
07 public MyContext(string connectionString): base(connectionString)
08 {
09 Database.SetInitializer<MyContext>(null);
10 }
11
12 protected override void OnModelCreating(DbModelBuilder modelBuilder)
13 {
14 modelBuilder.Configurations.Add(new CountryConfiguration());
15 modelBuilder.Configurations.Add(new CompanyConfiguration());
16 base.OnModelCreating(modelBuilder);
17 }
18
19 }

 

 

 

public class CompanyConfiguration: EntityTypeConfiguration<Company>
02 {
03
04 public CompanyConfiguration(): base()
05 {
06
07 HasKey(p => p.Id);
08 Property(p => p.Id).
09     HasColumnName("Id").
10     HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).
11     IsRequired();
12 Property(p => p.CompanyName).
13     HasColumnName("Name").
14     IsRequired();
15 HasRequired(x => x.HomeCountry).
16     WithMany().
17     Map(x => x.MapKey("HomeCountryId"));
18 ToTable("Companies");
19 }
20
21 }
22
23 public class CountryConfiguration: EntityTypeConfiguration<Country>
24 {
25
26 public CountryConfiguration(): base()
27 {
28 HasKey(p => p.Id);
29     Property(p => p.Id)
30     .HasColumnName("Id")
31     .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
32     .IsRequired();
33 Property(p => p.Code)
34     .HasColumnName("Code")
35     .IsRequired();
36 Property(p => p.Name)
37     .HasColumnName("Name")
38     .IsRequired();
39 ToTable("Countries");
40 }
41
42 }

 

 

 

你可能感兴趣的:(first)