gpt4 book ai didi

c# - 使用 DbLINQ 时出现 LINQ to PostgreSQL 错误

转载 作者:行者123 更新时间:2023-11-29 11:48:30 31 4
gpt4 key购买 nike

我正在通过 DbLINQ 使用 LINQ to SQL (PostgreSQL)。

我在执行 LINQ to PostgreSQL 时遇到问题。我用 dbmetal 成功生成了 .dbml 和 .cs 文件,我想我得到了所有的引用,代码编译。引用:

DbLinq
DbLinq.PostgreSql
DbLinq.SqlServer
Npgsql

using DbLinq.PostgreSql;

我得到一个异常(exception):

{"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"}

内部异常:

{"The system cannot find the path specified"}

连接字符串:

server=127.0.0.1;database=xxxxx;user id=postgres;password=xxxxx;
ili
server=localhost;database=xxxxx;user id=postgres;password=xxxxx;

如果我尝试使用 NpgsqlConnectionStringBuilder,我会得到:

HOST=localhost;PORT=5432;PROTOCOL=3;DATABASE=xxxxx;USER ID=postgres;PASSWORD=xxxxx;SSL=False;SSLMODE=Disable;TIMEOUT=15;SEARCHPATH=;POOLING=True;CONNECTIONLIFETIME=15;MINPOOLSIZE=1;MAXPOOLSIZE=20;SYNCNOTIFICATION=False;COMMANDTIMEOUT=20;ENLIST=False;PRELOADREADER=False;USEEXTENDEDTYPES=False;INTEGRATED SECURITY=False;COMPATIBLE=2.0.12.0;APPLICATIONNAME=

有一个异常(exception){"Keyword not supported: 'host'."}

我在 Win7 64 位、Postgres 9.2 64 位上通过 SquirrelSQL 和 jdbc 驱动程序成功连接

编辑:这很好

xxxxxDC dc = new xxxxxDC("server=127.0.0.1;database=xxxxx;user id=postgres;password=xxxxx;DbLinqProvider=PostgreSql;");
var q = from r in dc.xxxxx
select r;

但是我得到了一个错误

dataGridView1.DataSource = q

现在我知道这是因为查询没有立即执行。但问题依然存在。 “找不到或无法访问服务器”

F1!

lp

最佳答案

您显示了一系列完全不同的错误。

第一个是因为您没有告诉 LINQ 使用 nPgSQL,所以它试图使用 MS SQL Server 但无法连接 - 因为机器上可能没有任何 MS SQL Server。这就是错误提示 while establishing a connection to SQL Server 的原因。

然后您显示来自 NpgsqlConnectionStringBuilder 的 nPgSQL 连接字符串以及关于 host 关键字的结果错误。据我所知,这是因为该类生成的连接字符串用于 nPgSQL 自己的连接处理例程,而不是用于 LINQ。您需要一个指定 PostgreSQL 提供程序的 LINQ 连接字符串。

然后您显示另一个您认为“很好”的连接字符串,它附加了 DbLinqProvider=PostgreSql;,但您说在那之后的语句中出现“错误”。您没有显示错误消息,也没有显示用于设置连接的代码,因此我们无法真正帮助您。无论如何,这与您最初提出的问题确实是一个不同的问题;请针对新问题发布新问题,而不是重写您的原始问题。

您需要一个 PostgreSQL 的 LINQ 提供程序。参见 this questionwikipedia page on LINQ .看dbLinq , LINQ to Entities使用 Entity Framework 的 PostgreSQL 驱动程序,或 dotConnect .

在撰写本文时,nPgSQL 不包含 LINQ 提供程序,因此您需要添加第 3 方提供程序。据我所知,您不能直接将 LINQ 与 nPgSQL 一起使用。

关于c# - 使用 DbLINQ 时出现 LINQ to PostgreSQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14112347/

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