Я пытаюсь использовать 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.
Что может отсутствовать?
Вы смущены. Linq не является частью Entity Framework. –