使用 sqlmetal 为 npgsql 生成 linq 类
Generate linq classes using sqlmetal for npgsql
我正在尝试从 Linux 上的现有 PostgreSql 数据库为 Linq(或 Entity Framework 6)生成 c# 类。我在一个 monodevelop 项目中安装了 npgsql 和 Entity Framework 6,我能够使用纯 SQL.
查询数据库
但是当我尝试使用 Sqlmetal 生成 Linq 类 时:
sqlmetal -c "Port=5432;Encoding=UTF-8;Server=myDbServer;Database=MyDatabase;UserId=myUser;Password=mypassword;" --code=model.cs --language=c# --provider=PostgreSql
我收到以下错误:
sqlmetal: Could not load databaseConnectionType type 'npgsql'. Try using the --with-dbconnection=TYPE option.
我不知道在 --with-dbconnection 后面放什么
目前 Npgsql 驱动程序未随 Mono 分发 (http://www.mono-project.com/docs/about-mono/releases/4.0.0/)。解决这个问题的可能性很小:
将 Npgsql.dll 安装到 GAC。为此,您必须使用命令:
sudo gacutil -i Npgsql.dll
Npgsql.dll 可以从此处检索:https://github.com/npgsql/npgsql/releases/download/v2.2.5/Npgsql-2.2.5-net45.zip。
(以2.2.5.0版本为例,也可以使用不同的版本(例如v3))。之后你可以尝试重新运行 sqlmetal sqlmetal -c "Port=5432;Encoding=UTF-8;Server=myDbServer;Database=MyDatabase;UserId=myUser;Password=mypassword;" --code=model.cs --language=c# --provider=PostgreSql --with-dbconnection="Npgsql.NpgsqlConnection, Npgsql, Version=2.2.5.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"
将 Npgsql.dll 放入某个文件夹并将此文件夹添加到 MONO_PATH env 变量。例如,将 Npgsql.dll 放入 /usr/local/lib/mono-additional-assemblies 然后
set MONO_PATH=$MONO_PATH:/usr/local/lib/mono-additional-assemblies
之后重新运行 sqlmetal 而不使用 --with-dbconnection。应该可以。
我正在尝试从 Linux 上的现有 PostgreSql 数据库为 Linq(或 Entity Framework 6)生成 c# 类。我在一个 monodevelop 项目中安装了 npgsql 和 Entity Framework 6,我能够使用纯 SQL.
查询数据库但是当我尝试使用 Sqlmetal 生成 Linq 类 时:
sqlmetal -c "Port=5432;Encoding=UTF-8;Server=myDbServer;Database=MyDatabase;UserId=myUser;Password=mypassword;" --code=model.cs --language=c# --provider=PostgreSql
我收到以下错误:
sqlmetal: Could not load databaseConnectionType type 'npgsql'. Try using the --with-dbconnection=TYPE option.
我不知道在 --with-dbconnection 后面放什么
目前 Npgsql 驱动程序未随 Mono 分发 (http://www.mono-project.com/docs/about-mono/releases/4.0.0/)。解决这个问题的可能性很小:
将 Npgsql.dll 安装到 GAC。为此,您必须使用命令:
sudo gacutil -i Npgsql.dll
Npgsql.dll 可以从此处检索:https://github.com/npgsql/npgsql/releases/download/v2.2.5/Npgsql-2.2.5-net45.zip。 (以2.2.5.0版本为例,也可以使用不同的版本(例如v3))。之后你可以尝试重新运行 sqlmetalsqlmetal -c "Port=5432;Encoding=UTF-8;Server=myDbServer;Database=MyDatabase;UserId=myUser;Password=mypassword;" --code=model.cs --language=c# --provider=PostgreSql --with-dbconnection="Npgsql.NpgsqlConnection, Npgsql, Version=2.2.5.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"
将 Npgsql.dll 放入某个文件夹并将此文件夹添加到 MONO_PATH env 变量。例如,将 Npgsql.dll 放入 /usr/local/lib/mono-additional-assemblies 然后
set MONO_PATH=$MONO_PATH:/usr/local/lib/mono-additional-assemblies
之后重新运行 sqlmetal 而不使用 --with-dbconnection。应该可以。