📌  相关文章
📜  nuget Microsoft.EntityFrameworkCore.InMemory": "1.0.0" - C# (1)

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

介绍 - nuget package Microsoft.EntityFrameworkCore.InMemory : 1.0.0

NuGet Badge

Microsoft.EntityFrameworkCore.InMemory 是 .NET Core 的一个 Entity Framework Core (EFCore) 的 In-Memory 数据库提供程序,它允许开发人员在内存中创建和使用轻量级的数据库,而不需要专门安装或配置任何物理数据库。

安装
  • 在 Visual Studio 中,在项目中,在“解决方案资源管理器”窗格中右键单击项目,然后选择“管理 NuGet 包...”,在“ NuGet 包管理器”窗格中搜索“Microsoft.EntityFrameworkCore.InMemory”安装。

或者通过在控制台中运行以下命令安装:

Install-Package Microsoft.EntityFrameworkCore.InMemory -Version 1.0.0
如何使用

首先,从 EFCore 中构建指向 InMemory 数据库的数据上下文,如下所示:

using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
    public int Rating { get; set; }
    public ICollection<Post> 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; }
}

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        => optionsBuilder.UseInMemoryDatabase("MyDatabase");
}

然后,您可以使用实体框架领域模型上的查询和修改操作来与在内存中创建的数据库进行交互:

using (var context = new BloggingContext())
{
    var blog = new Blog { Url = "http://blogs.msdn.com/dotnet", Rating = 5 };
    context.Blogs.Add(blog);
    context.SaveChanges();

    var blogs = context.Blogs
        .OrderBy(b => b.Rating)
        .ToList();
}
为什么使用 InMemory 数据库?
  • 在开发、测试和快速原型验证过程中,可以轻松地使用实体框架 Core 对象上的标准 CRUD 操作对数据进行操作,这些操作将数据存储在内存中。
  • 可以轻松地创建、修改和删除数据,不需要连接到物理数据库。
  • 测试时可以使用 InMemory 数据库,因为它很容易处理,并且无需依赖于数据库服务器或文件。
总结

Microsoft.EntityFrameworkCore.InMemory 包是使用 Entity Framework Core (EFCore) 的一个内存数据库。通过使用此数据库提供程序,开发人员可以轻松地使用标准 EFCore 的 API 在内存中存储、检索和操作数据。这对于开发、测试和快速原型验证过程非常有用。