为何无法在DbContextOptionsBuilder上调用UseInMemoryDatabase方法?
解决DbContextOptionsBuilder找不到UseInMemoryDatabase的问题
你遇到的这个错误原因很明确:UseInMemoryDatabase是EF Core内存数据库提供者专属的扩展方法,它并不包含在EF Core的核心包或者SqlServer提供者包里,你的项目目前没有安装对应的内存数据库NuGet包,所以编译器找不到这个方法。
具体解决步骤:
安装匹配版本的内存数据库NuGet包
你的项目使用的是EF Core 1.1.5版本(从Microsoft.EntityFrameworkCore.SqlServer的版本可以看出),必须安装同版本的Microsoft.EntityFrameworkCore.InMemory包,保证版本一致性避免兼容性问题:- 使用Package Manager Console执行:
Install-Package Microsoft.EntityFrameworkCore.InMemory -Version 1.1.5 - 或者使用.NET CLI执行:
dotnet add package Microsoft.EntityFrameworkCore.InMemory --version 1.1.5 - 也可以直接修改你的
.csproj文件,在<ItemGroup>中添加以下引用:<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="1.1.5" />
- 使用Package Manager Console执行:
确认using指令存在
确保你调用UseInMemoryDatabase的代码文件顶部已经添加了:using Microsoft.EntityFrameworkCore;(你的
ProductContext类文件已经加了,但要检查使用DbContextOptionsBuilder的那个文件有没有加)
额外说明:
如果你之后需要尝试SQLite(你提到无法使用SQLite),同样需要安装对应的提供者包Microsoft.EntityFrameworkCore.Sqlite,版本也要保持1.1.x系列,和现有EF Core组件版本匹配。
内容的提问来源于stack exchange,提问作者Yusuf Cum
相关产品推荐
相关产品推荐

