我有一个与Entity Framework和Discord Sharp Plus集成的.NET控制台应用程序,具有以下库:
在不调试的情况下运行应用程序(Visual Studio中为Control + F5)即可正常工作,不会崩溃。
但是,如果我运行了调试程序,则在访问myDbContext
时会收到错误消息
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//....
}
这可能是由EF Core处理的内部异常。如果在Visual Studio中禁用了“仅启用我的代码”,则会看到这种异常:工具->选项->调试
本质上,这会在代码之外发生异常(即使已处理)时中断代码执行。
如果在发生异常时按F5键,它将继续运行-如果没有连接调试器,这将使程序运行没有问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句