npgsql LINQ创建SQL Server sql语法 [英] npgsql LINQ creates SQL Server sql syntax

查看:88
本文介绍了npgsql LINQ创建SQL Server sql语法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在.NET v3.5项目中将LINQ与Npgsql 2.0.11一起使用.我正在尝试从数据表进行第一个简单查询,但发现发送到Postgresql的语法是SQL Server语法,而不是Pgsql语法,导致服务器抛出语法错误.

I'm trying to use LINQ with Npgsql 2.0.11 in a .NET v3.5 project. I'm trying my first simple query from a data table, and I've found that the syntax sent to Postgresql is SQL Server syntax, not Pgsql syntax, causing the server to throw a syntax error.

我已根据文档建议将工厂代添加到项目的App.config中: <system.data>

I have added the factory generation to the project's App.config as suggested by the documentation: <system.data>

<DbProviderFactories>

<add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql" type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.11.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"/>

</DbProviderFactories>

</system.data>

这是一个代码段:

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>();

我发现 factory 是Npgsql.NpgsqlFactory的一个实例(似乎正确),而 connection 是Npgsql.NpgsqlConnection的一个实例.一切似乎都很好.但是,当我尝试使用GetTable时,生成的SQL语法包含方括号和其他各种SQL Server特定语法.

I've found that factory is an instance of Npgsql.NpgsqlFactory (seems right), and connection is an instance of Npgsql.NpgsqlConnection. All that seems good. However, when I attempt to GetTable, the SQL syntax generated contains square brackets and various other SQL Server specific syntax.

可能缺少什么?

推荐答案

DataContext

DataContext

DataContext是LinqToSql. LinqToSql仅适用于SqlServer.

DataContext is LinqToSql. LinqToSql is for SqlServer only.

也许您打算使用LinqToEntities和ObjectContext?

Perhaps you meant to use LinqToEntities and ObjectContext?

这篇关于npgsql LINQ创建SQL Server sql语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆