📜  Entity Framework-DEV方法(1)

📅  最后修改于: 2023-12-03 15:00:36.394000             🧑  作者: Mango

Entity Framework-DEV方法

简介

Entity Framework是一个ORM框架,是.NET框架的一部分。它允许开发者以面向对象的方式操作数据库。

开始使用
1. 安装Entity Framework

可以通过以下两种方法安装Entity Framework。

NuGet包管理器

右键点击项目,在"管理NuGet程序包"中搜索"Entity Framework",点击安装即可。

NuGet控制台

在NuGet控制台中输入以下命令,将自动安装最新版的Entity Framework:

Install-Package EntityFramework
2. 创建数据库模型

数据库优先

数据库模型优选适用于已经有现有数据库的情况。可以使用Entity Framework Power Tools插件中的Reverse Engineer功能来自动生成模型。

代码优先

代码优先适用于从头开始创建数据库的情况。我们需要创建一个继承自DbContext的类,并在其中声明实体类和数据库集合。

public class MyContext : DbContext
{
    public DbSet<User> Users { get; set; }
}

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}
3. 使用数据库模型
using (var context = new MyContext())
{
    // 添加到数据库
    var user = new User(){ Name = "Tom", Age = 18 };
    context.Users.Add(user);
    context.SaveChanges();

    // 更新
    user.Age = 20;
    context.SaveChanges();

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

    // 查询所有
    var users = context.Users.ToList();
    
    // 根据条件查询
    var filteredUsers = context.Users.Where(u => u.Age > 18).ToList();
}
4. 其他功能

关系

Entity Framework支持多种类型的关系,如一对一、一对多和多对多等。 在Code First中,可以使用Fluent API或数据注解来定义实体之间的关系。

惰性加载

默认情况下,Entity Framework会使用惰性加载来延迟加载导航属性。这意味着当访问导航属性时,它才会加载相关的实体。可以使用Include方法来强制加载相关实体。

var user = context.Users.Include(u => u.Roles).FirstOrDefault();

显式加载

可以在需要时使用显式加载来加载相关实体。

var user = context.Users.FirstOrDefault();
context.Entry(user).Collection(u => u.Roles).Load();
总结

本文介绍了Entity Framework的使用方法,包括安装、创建数据库模型和使用。同时提到了其他一些功能,如关系、惰性加载和显式加载。Entity Framework是一个强大的ORM框架,可以方便地进行数据库操作。