Den 13 juli släppte ADO.NET-teamet en ny CTP för Entity Framework. Detta har varit en mycket efterlängtad CTP eftersom den innehåller en ny version Code First. Den innehåller också Produktivitetsförbättringar. Båda saker kommer jag att beskriva nedan:
Produktivitetsförbättringar
Det är två nya klasser som är kärnan i de förbättringar som teamet har gjort:
- DbContext – en ny version av ObjectContext.
- DbSet<TEntity> – en ny version av ObjectSet<TEntity>
Båda dessa nya klasser använder sig av mönstret convention over configuration, vilket gör att man behöver skriva mycket mindre kod för att beskriva det som man vill göra. Detta blir särskilt synligt när man beskriver modellen med Code First.
Se mer i följande bloggpost: Productivity Improvements for the Entity Framework
Code First
Men Code First finns möjligheten att beskriva sin modell direkt i vanlig kod och sedan låta Entity Framework skapa databasen och sedan använda modellen beskriven i kod som utgångspunkt för CRUD och sökningar.
Här är ett enkelt exempel:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Entity; namespace ConsoleApplication4 { class Program { static void Main(string[] args) { using (var context = new ProductCatalog()) { var food = new Category() { CategoryId = "FOOD", Name = "Foods" }; context.Categories.Add(food); context.SaveChanges(); } } } public class Category { public string CategoryId { get; set; } public string Name { get; set; } public virtual ICollection<Product> Products { get; set; } } public class Product { public int ProductId { get; set; } public string Name { get; set; } public virtual Category Category { get; set; } } public class ProductCatalog : DbContext { public DbSet<Category> Categories { get; set; } public DbSet<Product> Products { get; set; } } }
Detta är det enda som behöver skrivas. När koden körs så kommer databasen automatiskt att skapas och sparandet av den nya kategorien kommer att göras.
Comments