using EFCoreDemo; using EFCoreDemo.Models; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting;
var host = builder.Build(); // 确保数据库存在 using (var scope = host.Services.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>(); dbContext.Database.EnsureCreated(); // 确保数据库已创建 // 添加示例数据 if (!dbContext.Blogs.Any()) { var blog = new Blog { Title = "My First Blog", Author = "John Doe" }; var post1 = new Post { Content = "This is my first post", Blog = blog }; var post2 = new Post { Content = "This is my second post", Blog = blog }; dbContext.Blogs.Add(blog); dbContext.Posts.AddRange(post1, post2); dbContext.SaveChanges(); } }
using EFCoreDemo; using EFCoreDemo.Models; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting;
var host = builder.Build(); // 确保数据库存在 using (var scope = host.Services.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>(); dbContext.Database.EnsureCreated(); // 确保数据库已创建 // 添加示例数据 if (!dbContext.Blogs.Any()) { var blog = new Blog { Title = "My First Blog", Author = "John Doe" }; var post1 = new Post { Content = "This is my first post", Blog = blog }; var post2 = new Post { Content = "This is my second post", Blog = blog }; dbContext.Blogs.Add(blog); dbContext.Posts.AddRange(post1, post2); dbContext.SaveChanges(); } // 查询数据 var blogs = dbContext.Blogs.Include(b => b.Posts).ToList(); foreach (var blog in blogs) { Console.WriteLine($"Blog: {blog.Title} by {blog.Author}"); foreach (var post in blog.Posts) { Console.WriteLine($" - Post: {post.Content}"); } } }
host.Run();
这段代码使用 Include 方法加载了 Blog 实体及其关联的 Posts 实体,然后遍历并打印了结果。
using EFCoreDemo; using EFCoreDemo.Models; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting;
var host = builder.Build(); // 确保数据库存在 using (var scope = host.Services.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>(); dbContext.Database.EnsureCreated(); // 确保数据库已创建 // 添加示例数据 if (!dbContext.Blogs.Any()) { var blog = new Blog { Title = "My First Blog", Author = "John Doe" }; var post1 = new Post { Content = "This is my first post", Blog = blog }; var post2 = new Post { Content = "This is my second post", Blog = blog }; dbContext.Blogs.Add(blog); dbContext.Posts.AddRange(post1, post2); dbContext.SaveChanges(); } // 查询数据 var blogs = dbContext.Blogs.Include(b => b.Posts).ToList(); foreach (var blog in blogs) { Console.WriteLine($"Blog: {blog.Title} by {blog.Author}"); foreach (var post in blog.Posts) { Console.WriteLine($" - Post: {post.Content}"); } } // 修改数据 var blogToUpdate = dbContext.Blogs.FirstOrDefault(); if (blogToUpdate != null) { blogToUpdate.Title = "My Updated Blog Title"; dbContext.SaveChanges(); Console.WriteLine("Blog updated successfully."); } }
host.Run();
这段代码首先查询第一个 Blog 实体,然后更新其 Title 属性,最后调用 SaveChanges 方法将更改保存到数据库。
using EFCoreDemo; using EFCoreDemo.Models; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting;
var host = builder.Build(); // 确保数据库存在 using (var scope = host.Services.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>(); dbContext.Database.EnsureCreated(); // 确保数据库已创建 // 添加示例数据 if (!dbContext.Blogs.Any()) { var blog = new Blog { Title = "My First Blog", Author = "John Doe" }; var post1 = new Post { Content = "This is my first post", Blog = blog }; var post2 = new Post { Content = "This is my second post", Blog = blog }; dbContext.Blogs.Add(blog); dbContext.Posts.AddRange(post1, post2); dbContext.SaveChanges(); } // 查询数据 var blogs = dbContext.Blogs.Include(b => b.Posts).ToList(); foreach (var blog in blogs) { Console.WriteLine($"Blog: {blog.Title} by {blog.Author}"); foreach (var post in blog.Posts) { Console.WriteLine($" - Post: {post.Content}"); } } // 修改数据 var blogToUpdate = dbContext.Blogs.FirstOrDefault(); if (blogToUpdate != null) { blogToUpdate.Title = "My Updated Blog Title"; dbContext.SaveChanges(); Console.WriteLine("Blog updated successfully."); } // 删除数据 var blogToDelete = dbContext.Blogs.FirstOrDefault(); if (blogToDelete != null) { dbContext.Blogs.Remove(blogToDelete); dbContext.SaveChanges(); Console.WriteLine("Blog deleted successfully."); } }
host.Run();
这段代码首先查询第一个 Blog 实体,然后使用 Remove 方法将其删除,最后调用 SaveChanges 方法将更改保存到数据库。
Console.WriteLine("\nFiltered and Sorted Blogs:"); foreach (var blog in filteredBlogs) { Console.WriteLine($" - Blog: {blog.Title} by {blog.Author}"); }