gpt4 book ai didi

c# - 使用 sqlmetal 为 npgsql 生成 linq 类

转载 作者:行者123 更新时间:2023-11-30 16:49:21 27 4
gpt4 key购买 nike

我正在尝试从 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/)。解决这个问题的可能性很小:

  1. 将 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"

  2. 将 Npgsql.dll 放在某个文件夹中,并将此文件夹添加到 MONO_PATH 环境变量中。比如把Npgsql.dll放到/usr/local/lib/mono-additional-assemblies然后

    set MONO_PATH=$MONO_PATH:/usr/local/lib/mono-additional-assemblies
    之后重新运行 sqlmetal 而不使用 --with-dbconnection。应该可以。

关于c# - 使用 sqlmetal 为 npgsql 生成 linq 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36814657/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com