public void Start() { // https://www.miroslavholec.cz/blog/odstranovani-dat-v-entity-framework-bez-preloadu // direct delete (by ID) Book book1 = new Book { BookId = 46 }; context.Entry(book1).State = EntityState.Deleted; context.SaveChanges(); // direct update EBook book2 = new EBook {BookId = 42, Title = "Tipy a triky pro iPhone 6", Added = DateTime.Now, CategoryId = 1}; context.Entry(book2).State = EntityState.Modified; // !!! neprovede se změna typu, EF bug context.SaveChanges(); // asnotracking var all1 = context.Books.ToList(); var all2 = context.Books.AsNoTracking().ToList(); Book book3 = context.Books.OrderByDescending(x => x.BookId).FirstOrDefault(); Book book4 = context.Books.AsNoTracking().OrderBy(x => x.BookId).FirstOrDefault(); book3.Title = "Chci změnit titulek"; book4.Title = "Chci změnit titulek"; context.SaveChanges(); // global tracking context.Configuration.AutoDetectChangesEnabled = false; Category category = context.Categories.FirstOrDefault(); Book book = context.Books.FirstOrDefault(); book.Category = category; context.SaveChanges(); // detect changes context.ChangeTracker.DetectChanges(); context.SaveChanges(); }
public void Start() { /*************************************** UPDATE */ // načtení dat a následné uložení Book book = context.Books.Find(2); book.Title = "O pejskovi a kočičce"; context.SaveChanges(); // ignorováno book = new Book { BookId = 2 }; book.Title = "Nový titulek"; context.SaveChanges(); // aktualizace na závislé property není problém var bookWithCategory = context.Books.Include(x => x.Category).FirstOrDefault(x => x.BookId == 2); bookWithCategory.Category.Name = "Psychologická kniha"; context.SaveChanges(); /*************************************** CREATE */ // přidání záznamu book = new Book() {Added = DateTime.Now, CategoryId = 1, Title = "New book" }; context.Books.Add(book); context.SaveChanges(); // přidání záznamu s navázanou entitou Category category = new Category {Name = "Hudební knihy"}; context.Books.Add(new EBook {Title = "Michael Jackson", Added = DateTime.Now, CategoryId = 1}); context.Books.Add(new PrintedBook {Title = "Michael Jackson", Added = DateTime.Now, Category = category}); context.SaveChanges(); var allData = new EBook { Title = "Jezevčík", Added = DateTime.Now, Category = new Category { Name = "Zvířata" }, ParameterValues = new List<ParameterValue> { new ParameterValue { ParameterId = 1, Value = "135"}, new ParameterValue {ParameterId = 2, Value = "2015"} } }; context.Books.Add(allData); context.SaveChanges(); /*************************************** DELETE */ // odstranění záznamu context.Books.Remove(allData); context.SaveChanges(); // cascading delete disabled var parameters = allData.ParameterValues; context.ParameterValues.RemoveRange(parameters); context.Books.Remove(allData); context.SaveChanges(); // https://www.miroslavholec.cz/blog/entity-framework-a-optimalizace-dotazu }