首页 > 解决方案 > 对象不包含“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 的类似错误消息。

这里是否缺少“使用”子句,或者我真正应该包括的任何其他内容?

标签: c#asp.net-coreentity-framework-core

解决方案


您可能缺少 Nuget 包 - 检查以确认 EFCore 已从 Visual Studio 上的 Nuget 包管理器安装。如果您不使用 Visual Studio,则可以使用包管理器 CLI。您可以通过查看 csproj 文件(通常位于项目的根文件夹)来检查您的项目是否引用了 EFCore。

如果上述方法没有帮助,那么您可能(很可能)缺少 using 语句。就像是:

using Microsoft.EntityFrameworkCore;

最后,您可能使用错误版本的 .NET Core 创建了项目,请按照上面的@Camilo Terevinto 评论正确检查


推荐阅读