gpt4 book ai didi

c# - 如何模拟仅在运行时持续存在的内存中的数据库?

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:22 27 4
gpt4 key购买 nike

我想使用 DbContext 模拟数据库操作,并使用 EF 对我的模型进行操作,但没有安装实际的数据库。在 .NET Core 中(2.2 版,如果它有什么不同的话)是否可能(相当容易)?

我读过有关 AddXxxInMemory 方法的内容,但仅限于 Identity Server 的上下文。最终我会有一个持久的数据源,但有时,我希望在内存中有一个伪造的数据源,用种子填充它,而不依赖于安装的外部数据库。

这可能吗?我的谷歌搜索主要造成困惑,并淹没在关于如何连接到 SQL Server 的指南中,并且出于某种奇怪的原因还链接到 IMDB。

最佳答案

Entity Framework Core 提供了一个内存数据库。它最初是为单元测试而设计的,但也可以用于其他目的。

完整文档可在此处获得:https://learn.microsoft.com/en-us/ef/core/providers/in-memory/

[TestMethod]
public void Add_writes_to_database()
{
var options = new DbContextOptionsBuilder<BloggingContext>()
.UseInMemoryDatabase(databaseName: "Add_writes_to_database")
.Options;

// Run the test against one instance of the context
using (var context = new BloggingContext(options))
{
var service = new BlogService(context);
service.Add("http://sample.com");
}

// Use a separate instance of the context to verify correct data was saved to database
using (var context = new BloggingContext(options))
{
Assert.AreEqual(1, context.Blogs.Count());
Assert.AreEqual("http://sample.com", context.Blogs.Single().Url);
}
}

关于c# - 如何模拟仅在运行时持续存在的内存中的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54336085/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com