c# - 对象不包含“xxx”的定义 - Microsoft 教程
问题描述
我正在关注 Microsoft 网站上的 ASP.Net 核心教程:“在 ASP.NET MVC Web 应用程序中开始使用 Entity Framework Core”。
本教程建议我将以下代码输入到我的 Program.cs 文件中,以便在应用程序启动时为数据库播种,然后在播种方法完成后处理上下文。
public static void Main(string[] args)
{
var host = CreateWebHostBuilder(args).Build();
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
try
{
var context = services.GetRequiredService<SchoolContext>();
DbInitializer.Initialize(context);
}
catch (Exception ex)
{
var logger = services.GetRequiredService<ILogger<Program>>();
logger.LogError(ex, "An error occurred while seeding the database.");
}
}
host.Run();
}
但是,'Build' 函数和 'Initialize' 函数都以红色突出显示 - 我收到错误消息“'object' does not contain a definition for 'Build' and no access extension method could be found”,以及Initialize 的类似错误消息。
这里是否缺少“使用”子句,或者我真正应该包括的任何其他内容?
解决方案
您可能缺少 Nuget 包 - 检查以确认 EFCore 已从 Visual Studio 上的 Nuget 包管理器安装。如果您不使用 Visual Studio,则可以使用包管理器 CLI。您可以通过查看 csproj 文件(通常位于项目的根文件夹)来检查您的项目是否引用了 EFCore。
如果上述方法没有帮助,那么您可能(很可能)缺少 using 语句。就像是:
using Microsoft.EntityFrameworkCore;
最后,您可能使用错误版本的 .NET Core 创建了项目,请按照上面的@Camilo Terevinto 评论正确检查
推荐阅读
- python - 如何删除 BeautifulSoup 中的父元素?
- security - 如何列出所有可公开访问的 GCP 资源?
- django-templates - 我在扩展的 html 上复制了模板标签内的内容
- azure-devops - 从 Azure DevOps 构建中获取触发的构建资源
- powerbi - 如何使用dax比较日期数据类型的日期表中的值
- javascript - 如何从另一个组件的功能更新组件的数组?
- reactjs - 如何使 Visual Studio 2022 看起来像用于 React JS 开发的 vs 代码
- google-cloud-platform - 使用 ansible / AWX 管理 GCP 标签
- flutter - 如何将 API 响应保存在数据库中?
- ios - 当我按下按钮上传图像时颤动崩溃