跳转到内容

C Sharp Entity Framework 基础

来自代码酷
Admin留言 | 贡献2025年4月29日 (二) 18:42的版本 (Page creation by admin bot)

(差异) ←上一版本 | 已核准修订 (差异) | 最后版本 (差异) | 下一版本→ (差异)

C# Entity Framework基础[编辑 | 编辑源代码]

Entity Framework (EF) 是微软推出的一个对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,而无需直接编写SQL语句。EF 简化了数据访问层的开发,提高了开发效率,尤其适合C#开发者。

概述[编辑 | 编辑源代码]

Entity Framework 是 .NET Framework 的一部分,它提供了一种将数据库表映射到C#对象(称为“实体”)的方式。通过EF,开发者可以使用LINQ查询数据库,EF会将这些查询转换为SQL语句并执行。EF还支持数据库迁移、事务管理等功能。

核心概念[编辑 | 编辑源代码]

  • DbContext:表示数据库会话,用于查询和保存数据。
  • DbSet<T>:表示数据库中的表,T是实体类型。
  • 实体(Entity):映射到数据库表的C#类。
  • 迁移(Migration):用于管理数据库架构的变化。

安装与配置[编辑 | 编辑源代码]

要使用Entity Framework,首先需要安装相应的NuGet包。对于EF Core,可以使用以下命令:

dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer

基本用法[编辑 | 编辑源代码]

以下是一个简单的EF Core示例,展示如何定义DbContext和实体类,并进行基本的CRUD操作。

定义实体和DbContext[编辑 | 编辑源代码]

using Microsoft.EntityFrameworkCore;

// 定义实体类
public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

// 定义DbContext
public class SchoolContext : DbContext
{
    public DbSet<Student> Students { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=SchoolDB;Trusted_Connection=True;");
    }
}

插入数据[编辑 | 编辑源代码]

using (var context = new SchoolContext())
{
    var student = new Student { Name = "Alice", Age = 20 };
    context.Students.Add(student);
    context.SaveChanges();
}

查询数据[编辑 | 编辑源代码]

using (var context = new SchoolContext())
{
    var students = context.Students.Where(s => s.Age > 18).ToList();
    foreach (var student in students)
    {
        Console.WriteLine($"Name: {student.Name}, Age: {student.Age}");
    }
}

更新数据[编辑 | 编辑源代码]

using (var context = new SchoolContext())
{
    var student = context.Students.FirstOrDefault(s => s.Name == "Alice");
    if (student != null)
    {
        student.Age = 21;
        context.SaveChanges();
    }
}

删除数据[编辑 | 编辑源代码]

using (var context = new SchoolContext())
{
    var student = context.Students.FirstOrDefault(s => s.Name == "Alice");
    if (student != null)
    {
        context.Students.Remove(student);
        context.SaveChanges();
    }
}

数据库迁移[编辑 | 编辑源代码]

EF Core使用迁移来管理数据库架构的变化。以下是迁移的基本命令:

dotnet ef migrations add InitialCreate
dotnet ef database update

实际应用场景[编辑 | 编辑源代码]

Entity Framework广泛应用于企业级应用程序中,例如:

  • 电子商务平台的产品目录管理。
  • 学生信息管理系统。
  • 内容管理系统的数据存储。

性能优化[编辑 | 编辑源代码]

为了提高EF的性能,可以采取以下措施:

  • 使用AsNoTracking()避免跟踪不需要更改的实体。
  • 批量操作时使用AddRange或RemoveRange。
  • 使用原始SQL查询处理复杂查询。

高级主题[编辑 | 编辑源代码]

对于高级用户,EF还支持以下功能:

  • 懒加载(Lazy Loading)和急加载(Eager Loading)。
  • 复杂类型(Complex Types)和继承映射。
  • 并发控制(Concurrency Control)。

总结[编辑 | 编辑源代码]

Entity Framework是C#开发中强大的ORM工具,它简化了数据库操作,提高了开发效率。通过本文的介绍,你应该对EF的基本概念和使用方法有了初步了解。接下来可以深入学习EF的高级特性和最佳实践。

参见[编辑 | 编辑源代码]