npgsql LINQ创建SQL Server SQL语法

npgsql LINQ创建SQL Server SQL语法,linq,postgresql,npgsql,Linq,Postgresql,Npgsql,我试图在.NETV3.5项目中将LINQ与NPGSQL2.0.11结合使用。我正在尝试从数据表进行第一次简单查询,发现发送到Postgresql的语法是SQL Server语法,而不是Pgsql语法,这导致服务器抛出语法错误 我已按照文档中的建议将工厂生成添加到项目的App.config中: 以下是一个片段: DbProviderFactory factory = DbProviderFactories.GetFactory("Npgsql"); DbConnection connec

我试图在.NETV3.5项目中将LINQ与NPGSQL2.0.11结合使用。我正在尝试从数据表进行第一次简单查询,发现发送到Postgresql的语法是SQL Server语法,而不是Pgsql语法,这导致服务器抛出语法错误

我已按照文档中的建议将工厂生成添加到项目的App.config中:

以下是一个片段:

DbProviderFactory factory = DbProviderFactories.GetFactory("Npgsql");
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = "Server=mydbhost.example.com;UserId=postgres;Database=postgres";
table = new DataContext(connection).GetTable<Project.Model.MyEntity>();
DbProviderFactory工厂=dbProviderFactorys.GetFactory(“Npgsql”);
DbConnection=factory.CreateConnection();
connection.ConnectionString=“Server=mydbhost.example.com;UserId=postgres;Database=postgres”;
table=newdatacontext(connection.GetTable();
我发现factory是Npgsql.NpgsqlFactory的一个实例(似乎正确),而connection是Npgsql.NpgsqlConnection的一个实例。一切似乎都很好。但是,当我尝试获取时,生成的SQL语法包含方括号和各种其他特定于SQL Server的语法

可能遗漏了什么

数据上下文

DataContext是LinqToSql。LinqToSql仅适用于SqlServer


也许您打算使用LinqToEntities和ObjectContext?

如果您想将LINQ to SQL用于除Microsoft SQL Server之外的RDBMS,则需要第三方程序集。DBLinq是一个为其他(开源)数据库提供LINQ到SQL功能的项目

Npgsql可以配置为实体框架的db提供程序,请参阅此Npgsql博客上的文档: