EF框架在net中的用法

Entity Framework(EF)是一个流行的对象关系映射(ORM)框架,它允许开发人员通过使用对象模型来访问和操作数据库。在 .NET 5 中,EF 框架有一些新特性和改进。下面是 EF 框架在 .NET 5 中的详细用法:

安装 Entity Framework Core:在 .NET 5 中,EF 核心已经合并到了 .NET Core 中,所以你只需要引用 Microsoft.EntityFrameworkCore 包即可。

创建数据模型:使用 C# 类来表示数据库表和关系。你可以使用注解或 Fluent API 来定义实体之间的关系、主键、外键等。例如:

csharp 复制代码
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

创建数据库上下文:数据库上下文是 EF 框架与数据库之间的桥梁。你需要创建一个继承自 DbContext 的类,并将你的实体类集合作为属性添加到上下文中。例如:

csharp 复制代码
public class MyDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // 配置数据库连接
        optionsBuilder.UseSqlServer("your_connection_string");
    }
}

进行数据库迁移:EF 框架使用迁移来创建和更新数据库架构。你可以使用 dotnet ef 命令行工具来执行迁移操作。例如:

powershell 复制代码
bash
dotnet ef migrations add InitialCreate
dotnet ef database update

使用 EF 进行数据访问:你可以在应用程序中使用上下文来查询和操作数据库。例如:

csharp 复制代码
//依赖注入方式
public class AppServiceTest{
	private readonly MyDbContext _context;
        public AppServiceTest( 
            MyDbContext context) 
        { 
            this._context = context;
        }
	public dynamic get(){
		var products = _context.Products.ToList();
    	// 查询所有产品

    	var product = _context.Products.FirstOrDefault(p => p.Name == "Product 1");
    	// 查询名称为 "Product 1" 的产品
	}
}

//或者实例化对象

using (var context = new MyDbContext())
{
    var products = context.Products.ToList();
    // 查询所有产品

    var product = context.Products.FirstOrDefault(p => p.Name == "Product 1");
    // 查询名称为 "Product 1" 的产品
}

这些是 EF 在 .NET 5 中的一些基本用法。你可以进一步探索 EF 框架的高级功能,如数据关系、数据迁移、查询等。官方文档提供了更详细的用法和示例,你可以参考官方文档进行更深入的学习和实践。

相关推荐
△曉風殘月〆4 天前
C#如何简单地组合linq查询条件
c#·linq·ef
yangshuquan2 个月前
分享一个 .NET EF6 应用二级缓存提高性能的方法
性能优化·c#·.net·ef
yangshuquan2 个月前
分享 2 个 .NET EF 6 只更新某些字段的方法
c#·.net·ef
yangshuquan2 个月前
分享一个 .NET EF 6 扩展 Where 的方法
c#·.net·linq·ef
yangshuquan2 个月前
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
c#·.net·linq·ef
yangshuquan2 个月前
分享一个 .NET 通过监听器拦截 EF 消息写日志的详细例子
c#·.net·拦截器·ef
goyeer4 个月前
【.NET Core】你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟
开发语言·microsoft·c#·.netcore·ef
goyeer5 个月前
【Entity Framework】你知道如何处理无键实体吗
数据库·microsoft·c#·.netcore·ef
goyeer5 个月前
【Entity Framework】EF连接字符串和模型
microsoft·c#·asp.net·.netcore·ef
goyeer6 个月前
【Entity Framework】EF中的增删改查
c#·asp.net·.netcore·ef