LinqPad 5 with EFCore - TypeLoadException: Inheritance security rules violated by type: 'Remotion.Li
Options
Hi,
Posted a query on Stack Overflow here but didn't appear to get any traction.
Anyone have a solution to (or had a similar issues, so I can identify if its my setup or a broader issue) the following error when trying to query an EFCore DbContext from LinqPad against SQL Express..
TypeLoadException: Inheritance security rules violated by type: 'Remotion.Linq.Parsing.RelinqExpressionVisitor'. Derived types must either match the security accessibility of the base type or be less accessible.
I found a similar issue posted here but with no resolution either..
Anyone any ideas?
Thanks
Posted a query on Stack Overflow here but didn't appear to get any traction.
Anyone have a solution to (or had a similar issues, so I can identify if its my setup or a broader issue) the following error when trying to query an EFCore DbContext from LinqPad against SQL Express..
TypeLoadException: Inheritance security rules violated by type: 'Remotion.Linq.Parsing.RelinqExpressionVisitor'. Derived types must either match the security accessibility of the base type or be less accessible.
I found a similar issue posted here but with no resolution either..
Anyone any ideas?
Thanks
Comments
-
Do you have the AllowPartiallyTrustedCallers attribute set on your DbContext assembly, or any other code-access security attributes?
If so, try removing them. -
Hi Joe,
Thanks for coming back to me. Nothing special with the DB context apart from inherting from IdentityDbContext.
Just to be sure, I cloned and ran the sample code as part of the EFCore official tutorial here: https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro?view=aspnetcore-2.2
I have modified the sample slightly, firstly to move the data stuff to a netstandard2.0 lib as the 'EF Core Driver v2.2' doesn't appear to support netcoreapp.
I also added the 'CopyLocalLockFileAssemblies' attribute to the Data.csproj to copy all assemblies to the output folder, so I can reference the Data.dll from /data/bin/debug/netstandard2.0
Finally I added support to the DbContext for using a parameterless constructor
You can find the minimal sample here:
https://github.com/stevenknox/LinqPad-EfCore-Issue
When I create the connection with the following settings:
It finds and loads the tables:
However trying to execute any sort of query blows up:
Any thoughts?
Thanks,
Steven
-
@sknox I chased a similar bug with asp.net core where I had three different projects:
- BusinessEntities -- my model
- Data Transfer Objects -- what I sent to the front end
- asp.net core application
I kept receiving the same error you are seeing in your setup. Solution was to point LINQPad to the BusinessEntities project and ensure the BusinessEntities.deps.json file was generated. Lastly I told LINQPad to Restore NuGet Dependencies from the Entity Framework DbContext Connection pop up. - BusinessEntities -- my model
-
Hi @benhysell , thanks for your feedback, very much appreciated.
In my example project (https://github.com/stevenknox/LinqPad-EfCore-Issue) both model/domain objects and the dbcontext are encapsulated into one project, which i'm then pointing LinqPad too the compiled assembly for that project (no need to resolve any additional libs etc).
I also just checked and the deps.json file is getting generated/copied to the output folder alongside the DLL i'm targeting. Also tried running the 'Restore NuGet Dependencies' however just getting the same error.
Does the minimal repro project I added above work for you by any chance? If so it means its some version/config issue on my machine and not the project/code structure.
Thanks,
Steven -
I've encountered the same issue in a very basic use case:
- Scaffold a DB context using the 'dotnet ef dbcontext scaffold ...' command
- Build the project as a netstandard2.0 library
- Add DB context in the Linqpad EF core driver (v2.2)
The only workaround for me was to revert back to an older version of EFCore (2.0.0) which uses a different version of the Remotion.Relinq package. -
I'll try targeting that version in my sample repo shortly to see if that works. If so could just be a case of waiting until the Remotion.Relinq supports the latest EFCore 2.2