將一個實體資料儲存到不同的資料表中<EntityFramework6.0>

Halower發表於2014-11-22

2014-11-22宣告方式

 1  public class Product
 2     {
 3         [Key]
 4         [DatabaseGenerated(DatabaseGeneratedOption.None)]
 5         public int SKU { get; set; }
 6         public string Description { get; set; }
 7         public decimal Price { get; set; }
 8         public virtual string ImageURL { get; set; }
 9     }
10 
11     public class ProductContext : DbContext
12     {
13         public DbSet<Product> Products { get; set; }
14         protected override void OnModelCreating(DbModelBuilder modelBuilder)
15         {
16             base.OnModelCreating(modelBuilder);
17             modelBuilder.Entity<Product>()
18                 .Map(m =>
19                 {
20                     m.Properties(p => new {p.SKU, p.Price, p.Description});
21                     m.ToTable("Table1");
22                 }).Map(m =>
23                 {
24                     m.Properties(p => new {p.SKU, p.ImageURL});
25                     m.ToTable("Table2");
26                 });
27         }
28     }

怎麼使用

 1   static void Main(string[] args)
 2         {
 3             using (var context=new ProductContext())
 4             {
 5                 
 6                 var products = new List<Product>
 7                 {
 8                     new Product {SKU = 1, Price = 12.1m, Description = "1test", ImageURL = "1.jpg"},
 9                     new Product {SKU = 2, Price = 12.2m, Description = "2test", ImageURL = "2.jpg"},
10                     new Product {SKU = 3, Price = 12.3m, Description = "3test", ImageURL = "3.jpg"},
11                     new Product {SKU = 4, Price = 12.4m, Description = "4test", ImageURL = "4.jpg"},
12                     new Product {SKU = 5, Price = 12.5m, Description = "5test", ImageURL = "5.jpg"},
13                     new Product {SKU = 6, Price = 12.6m, Description = "6test", ImageURL = "6.jpg"}
14                 };               
15                 context.Products.AddRange(products);
16                 context.SaveChanges();
17             }
18             using (var context = new ProductContext())
19             {
20                 foreach (var product in context.Products)
21                 {
22                     Console.WriteLine("{0}--{1}--{2}--{3}", product.SKU, product.Price, product.Description,
23                         product.ImageURL);
24                 }
25                 Console.ReadKey();
26             }
27          }

生成表結構

執行效果

相關文章