首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >npgsql LINQ创建Server语法

npgsql LINQ创建Server语法
EN

Stack Overflow用户
提问于 2011-01-24 21:16:07
回答 2查看 4K关注 0票数 4

在.NET v3.5项目中,我试图在Npgsql 2.0.11中使用LINQ。我正在尝试数据表中的第一个简单查询,我发现发送给Postgresql的语法是Server语法,而不是Pgsql语法,这导致服务器抛出语法错误。

我按照文档: 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>

下面是一个片段:

代码语言:javascript
复制
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的一个实例(似乎是正确的),connection是Npgsql.NpgsqlConnection的一个实例。这一切似乎都很好。但是,当我尝试GetTable时,生成的SQL语法包含方括号和其他特定于Server的语法。

什么东西可能少了?

EN

回答 2

Stack Overflow用户

发布于 2011-01-25 02:47:43

DataContext

DataContext是LinqToSql。LinqToSql只适用于SqlServer。

也许你打算使用LinqToEntities和ObjectContext?

票数 3
EN

Stack Overflow用户

发布于 2011-01-25 18:02:57

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

http://code.google.com/p/dblinq2007/

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

http://npgsql.com/index.php/2009/08/how-to-set-up-entity-framework-npgsql-part-1/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4787255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档