CSharpRepl icon indicating copy to clipboard operation
CSharpRepl copied to clipboard

How to use against a project with EF Core and Postgres?

Open AndiRudi opened this issue 10 months ago • 0 comments

I want to start a csharprepl against an existing asp.net core app with entity framework and postgres as the database. The idea is to play with the project and especially also query the database using the models in the project. I couldn't get it to work after quite some time and maybe someone can help.

I am starting the repl normally with csharprepl but I also tried csharprepl --framework Microsoft.AspNetCore.App which did not change anything, so maybe this is not related?!

Anyway then I am starting with the following lines

#r "./MyProject/MyProject.csproj"
#r "nuget: Microsoft.EntityFrameworkCore, 8.0.3.0"
#r "nuget: Npgsql.EntityFrameworkCore.PostgreSQL, 8.0.2"

using MyProject;
using Microsoft.EntityFrameworkCore;

var optionsBuilder = new Microsoft.EntityFrameworkCore.DbContextOptionsBuilder<MyDbContext>();
optionsBuilder.UseNpgsql("....");

var context = new MyProject.MyDbContext(optionsBuilder.Options);

and I get the following error:

(9,1): error CS1929: 'DbContextOptionsBuilder<MyDbContext>' does not contain a definition for 'UseNpgsql', 
and the best extension method overload 'NpgsqlDbContextOptionsBuilderExtensions.UseNpgsql(DbContextOptionsBuilder, 
Action<NpgsqlDbContextOptionsBuilder>?)' requires a receiver of type 'DbContextOptionsBuilder'.

I have a clue that the wrong extension method is used, but I am stuck to figure out why... Is this a bug?

AndiRudi avatar Apr 05 '24 08:04 AndiRudi