gpt4 book ai didi

c# - 带有 Entity Framework Core : 'The process has no package identity' only when started without debugging 的 .NET 控制台应用程序

转载 作者:行者123 更新时间:2023-12-03 14:37:51 28 4
gpt4 key购买 nike

我有一个与 Entity Framework 和 Discord Sharp Plus 集成的 .NET 控制台应用程序,其中包含以下库:

  • DSharpPlus
  • DSharpPlus.CommandsNext
  • Microsoft.EntityFrameworkCore.Design
  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Tools

  • 在不调试的情况下运行应用程序(Visual Studio 中的 Control + F5)工作正常,没有发生崩溃。
    但是,如果我使用调试运行,在访问我的 DbContext 时, 我收到一个错误

    InvalidOperationException: The Process has no package identity (0x80073D54)


    一个例子是这一行:
    Database.Commands.SingleOrDefault(x => x.CommandTrigger == name)
    出于调试目的,如果我更改 SingleOrDefaultElementAt(0) ,我收到以下错误:

    System.InvalidOperationException
    HResult=0x80131509
    Message=Processing of the LINQ expression 'DbSet .ElementAtOrDefault(__p_0)' by 'NavigationExpandingExpressionVisitor' failed. This may indicate either a bug or a limitation in EF Core. See https://go.microsoft.com/fwlink/?linkid=2101433 for more detailed information.
    Source=Microsoft.EntityFrameworkCore

    StackTrace:

    at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)


    这不是 UWP 应用。它是一个带有多个类库的 .NET 控制台应用程序。
    这是我的 Dbcontext 类:
    private readonly string dbPath = $"Data Source={Environment.GetEnvironmentVariable("YuutaDbPath")}";

    public DbSet<Guild> Guilds { get; set; }
    // ...
    // ...

    protected override void OnConfiguring(DbContextOptionsBuilder options)
    => options.UseSqlite(dbPath);

    protected override void OnModelCreating(ModelBuilder builder)
    {
    builder.SeedEnumValues//....
    }

    最佳答案

    这可能是由 EF Core 处理的内部异常。如果您禁用了“Enable Just My Code”,您将看到此类异常。 ' 在 Visual Studio 中:工具 -> 选项 -> 调试
    enter image description here
    启用此选项应该可以解决问题。
    本质上,即使已处理,当异常发生在您的代码之外时,这也会中断代码执行。
    如果您在发生异常时按 F5,它应该继续运行 - 这是您的程序在没有附加调试器时运行而不会出现问题的方式。

    关于c# - 带有 Entity Framework Core : 'The process has no package identity' only when started without debugging 的 .NET 控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62560903/

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