.NET如何使用Entity Framework Core实现Code First开发_EF Core Code First开发教程

月夜之吻
发布: 2025-11-15 19:27:06
原创
769人浏览过
答案:EF Core是微软的轻量级跨平台ORM框架,支持Code First模式,通过C#类定义数据模型并自动生成数据库。首先安装EF Core核心库、数据库提供程序和工具包;接着定义实体类如User,并遵循Id为主键、类名复数为表名的约定;然后创建继承DbContext的上下文类AppDbContext,配置DbSet属性和数据库连接;使用OnConfiguring方法或依赖注入设置连接字符串;通过dotnet ef migrations add InitialCreate生成迁移文件,再执行dotnet ef database update创建数据库;利用DbContext实例实现CRUD操作,包括添加、查询、更新和删除数据;可选使用数据注解或Fluent API进行模型配置,提升灵活性与安全性。

.net如何使用entity framework core实现code first开发_ef core code first开发教程

Entity Framework Core(简称 EF Core)是微软提供的轻量级、可扩展且跨平台的ORM框架,支持Code First开发模式。在Code First模式下,开发者通过编写C#类来定义数据模型,EF Core会根据这些类自动生成数据库结构,非常适合领域驱动设计和快速迭代开发。

1. 安装EF Core相关包

开始前,确保项目已安装EF Core的核心库和对应数据库的提供程序。以SQL Server为例,在.NET项目中通过NuGet安装以下包:

  • Microsoft.EntityFrameworkCore(核心库)
  • Microsoft.EntityFrameworkCore.SqlServer(SQL Server提供程序)
  • Microsoft.EntityFrameworkCore.Tools(用于迁移命令)

可通过NuGet包管理器或命令行安装:

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

2. 定义实体模型类

创建代表数据库表的C#类。每个类对应一张表,属性对应字段。

例如,定义一个User类:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
}

EF Core默认约定:名为Id的属性会被识别为主键;类名复数形式作为表名(如Users)。

3. 创建DbContext派生类

DbContext是EF Core的核心入口,用于管理实体集合和数据库连接。

新建一个类继承DbContext

public class AppDbContext : DbContext
{
    public DbSet Users { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("Server=localhost;Database=MyAppDb;Trusted_Connection=true;TrustServerCertificate=true");
    }
}

也可以在Program.csStartup.cs中通过依赖注入配置连接字符串,更推荐这种方式。

4. 使用迁移(Migration)创建数据库

EF Core通过迁移将模型变更同步到数据库。

智谱AI开放平台
智谱AI开放平台

智谱AI大模型开放平台-新一代国产自主通用AI开放平台

智谱AI开放平台 38
查看详情 智谱AI开放平台

执行以下命令生成初始迁移:

dotnet ef migrations add InitialCreate

该命令会在项目中生成一个Migrations文件夹,包含描述数据库结构变更的代码文件。

接着应用迁移,创建数据库:

dotnet ef database update

此时,数据库MyAppDb会被创建,并生成Users表。

5. 操作数据(CRUD示例)

使用AppDbContext进行数据操作:

using var context = new AppDbContext();

// 添加用户
var user = new User { Name = "张三", Email = "zhangsan@example.com" };
context.Users.Add(user);
context.SaveChanges();

// 查询用户
var users = context.Users.ToList();

// 更新
user.Name = "李四";
context.SaveChanges();

// 删除
context.Users.Remove(user);
context.SaveChanges();

6. 模型进阶配置(可选)

可通过数据注解或Fluent API进一步配置模型。

使用数据注解(在类上加Attribute):

public class User
{
    [Key]
    public int Id { get; set; }

    [Required, MaxLength(100)]
    public string Name { get; set; }

    [EmailAddress]
    public string Email { get; set; }
}

或在OnModelCreating中使用Fluent API:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity()
        .ToTable("Users")
        .Property(u => u.Name).IsRequired().HasMaxLength(100);
}

基本上就这些。从定义模型到操作数据,EF Core的Code First流程清晰高效。只要掌握迁移命令和上下文配置,就能快速构建数据层。实际项目中建议结合依赖注入和配置文件管理连接字符串,提升灵活性和安全性。

以上就是.NET如何使用Entity Framework Core实现Code First开发_EF Core Code First开发教程的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号