.NET v3.5 プロジェクトで Npgsql 2.0.11 で LINQ を使用しようとしています。データ テーブルから最初の単純なクエリを実行しようとしていますが、Postgresql に送信される構文が Pgsql 構文ではなく SQL Server 構文であるため、サーバーが構文エラーをスローすることがわかりました。
ドキュメントで提案されているように、プロジェクトの 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>
ここにスニペットがあります:
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 固有の構文が含まれています。
何が欠けている可能性がありますか?