diff --git "a/\346\235\250\345\256\201/20240611-\345\205\263\344\272\216EFCore.mm.md" "b/\346\235\250\345\256\201/20240611-\345\205\263\344\272\216EFCore.mm.md" new file mode 100644 index 0000000000000000000000000000000000000000..a4090c928bab376b0689801d1e9b9de71e8019d1 --- /dev/null +++ "b/\346\235\250\345\256\201/20240611-\345\205\263\344\272\216EFCore.mm.md" @@ -0,0 +1,64 @@ +# Entity Framework Core (EF Core) + +## 概述 +- .NET 的对象关系映射器 (ORM) +- 用于简化数据库操作 +- 支持多种数据库 + +## 核心概念 +- **模型**: 定义数据库结构 + - 实体 (Entity) + - 属性 (Property) + - 关系 (Relationship) +- **上下文 (DbContext)**: 与数据库交互的接口 + - 包含数据库连接信息 + - 提供数据库操作方法 + +## 数据库操作 +- **查询 (Querying)**: + - LINQ 查询 + - 查询方法 +- **更新 (Updating)**: + - 添加 (Add) + - 更新 (Update) + - 删除 (Remove) +- **保存 (SaveChanges)**: 将更改保存到数据库 + +## 配置 +- **Fluent API**: 用于配置模型 +- **数据注解**: 使用属性配置模型 +- **迁移 (Migrations)**: 用于创建和更新数据库 + +## 高级功能 +- **异步操作**: 异步查询和更新 +- **日志记录**: 记录数据库操作 +- **性能优化**: 查询优化、缓存等 + +## 示例代码 +```csharp +public class BloggingContext : DbContext +{ + public DbSet Blogs { get; set; } + public DbSet Posts { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + optionsBuilder.UseSqlServer(@"Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;"); + } +} + +public class Blog +{ + public int BlogId { get; set; } + public string Url { get; set; } + public List Posts { get; set; } +} + +public class Post +{ + public int PostId { get; set; } + public string Title { get; set; } + public string Content { get; set; } + public int BlogId { get; set; } + public Blog Blog { get; set; } +} \ No newline at end of file