我有一个与 Entity Framework 和 Discord Sharp Plus 集成的 .NET 控制台应用程序,其中包含以下库:
- DSharpPlus
- DSharpPlus.CommandsNext
- Microsoft.EntityFrameworkCore.Design
- Microsoft.EntityFrameworkCore.Sqlite
- Microsoft.EntityFrameworkCore.Tools
在不调试的情况下运行应用程序(Visual Studio 中的 Control + F5)工作得很好,没有出现崩溃。
但是,如果我在调试的情况下运行,在访问我的 时DbContext
,我会收到一个错误
InvalidOperationException:进程没有包标识(0x80073D54)
一个例子是这一行:
Database.Commands.SingleOrDefault(x => x.CommandTrigger == name)
出于调试目的,如果我更改SingleOrDefault
为ElementAt(0)
,我会收到以下错误:
System.InvalidOperationException
HResult=0x80131509
消息=“NavigationExpandingExpressionVisitor”处理 LINQ 表达式“DbSet .ElementAtOrDefault(__p_0)”失败。这可能表示 EF Core 中的错误或限制。有关更多详细信息,请参阅https://go.microsoft.com/fwlink/?linkid=2101433。
源=Microsoft.EntityFrameworkCore堆栈跟踪:
在 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//....
}