I have a .NET Console App integrated with Entity Framework and Discord Sharp Plus with the following libraries:
Running the application without debugging (Control + F5 in Visual Studio) works just fine, no crashes issued.
However, if I run with debugging, upon accessing my DbContext
, I get an error
InvalidOperationException: The Process has no package identity (0x80073D54)
An example being this line:
Database.Commands.SingleOrDefault(x => x.CommandTrigger == name)
For debugging purposes, if I change SingleOrDefault
to ElementAt(0)
, I get the following error:
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.EntityFrameworkCoreStackTrace:
at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
This is NOT an UWP app. It is a .NET console application with several class libraries.
Here's my Dbcontext class:
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//....
}
This is could be an internal exception which is handled by EF Core. You will see this kind of exceptions if you have disabled 'Enable Just My Code' in Visual Studio: Tools -> Options -> Debugging
Enabling this option should fix the issue.
Essentially this will break code execution when exception occurs outside of your code even if handled.
If you hit F5 when the exception occurs it should continue running - this is way your program is running without issues when there is not debugger attached.
I have read that this exception can occur when not using a fully qualified path on the connection string. Make sure that your database path in your connection is fully qualified in the following form:
var dbPath = @"Filename=C:\the\path\to\your\database.db";
You can decide on whether this full string is in the environment variable or whether you just have the path as an environment variable.
User contributions licensed under CC BY-SA 3.0