我想在.NET v3.5项目中使用带有Npgsql 2.0.11的LINQ。我正在尝试从数据表开始我的第一个简单查询,并且我发现发送到Postgresql的语法是SQL Server语法,而不是Pgsql语法,导致服务器抛出语法错误。npgsql LINQ创建SQL Server sql语法
我已经加入了工厂代项目的App.config中通过文档的建议: <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>
^h ERE是一个片段:
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>();
我发现工厂是Npgsql.NpgsqlFactory的一个实例(似乎是正确的),并连接是Npgsql.NpgsqlConnection的一个实例。一切似乎都很好。但是,当我尝试GetTable时,生成的SQL语法包含方括号和各种其他SQL Server特定语法。
什么可能会丢失?
你困惑。 Linq不是实体框架的一部分。 – 2011-01-25 18:10:50