2011-01-24 2 views
4

Я пытаюсь использовать LINQ с Npgsql 2.0.11 в проекте .NET v3.5. Я пытаюсь выполнить первый простой запрос из таблицы данных, и я обнаружил, что синтаксис, посланный 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.

Что может отсутствовать?

ответ

2

DataContext

DataContext является LinqToSql. LinqToSql предназначен только для SqlServer.

Возможно, вы хотели использовать LinqToEntities и ObjectContext?

0

Если вы хотите использовать LINQ to SQL для РСУБД, отличных от Microsoft SQL Server, необходима сторонняя сборка. DBLinq - это проект, который обеспечивает функциональность LINQ to SQL для других (открытых исходных) баз данных.

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

Npgsql может быть сконфигурирован в качестве поставщика БД для Entity Framework после документации на этом блоге Npgsql:

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

+0

Вы смущены. Linq не является частью Entity Framework. –

Смежные вопросы