Я пытаюсь подключиться к базе данных PostgreSQL с моего сайта ASP.NET MVC. Формат представления и модели работает как для SQL Server, так и для MySQL, поэтому, насколько я могу судить, у меня не должно быть проблем.Соединение базы данных PostgreSQL в asp.net mvc и Entity Framework 6
Приложение бросает в System.Data.dll
в System.ArgumentException
и возвращает ошибку:
Keyword not supported: metadata" "Parameter name: keyword
на веб-странице.
То, что используется System.Data.dll
, кажется неправильным, но я не могу это подтвердить.
Как я могу подключиться к PostgreSQL таким образом?
У меня Nuget установлен Npgsql 3.0.5 и EntityFramework6.Npgsql 3.0.5.
Пожалуйста, дайте мне знать, если я оставил важную информацию.
Соответствующая web.config
информация выглядит следующим образом:
<add name="PostgreSQLConnectionString"
connectionString="
metadata=res://*/Models.Test.csdl|res://*/Models.Test.ssdl|res://*/Models.Test.msl;
provider=System.Data.SqlClient;
provider connection string="
data source=localhost:5432\;
initial catalog=Test;
integrated security=False;
user id=username;
password=password;
multipleactiveresultsets=True;
App=EntityFramework""
providerName="Npgsql" />
<provider invariantName="Npgsql"
type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql">
</provider>
<remove invariant="Npgsql" />
<add name="Npgsql - .Net Data Provider for PostgreSQL"
invariant="Npgsql"
description=".Net Data Provider for PostgreSQL"
type="Npgsql.NpgsqlFactory, Npgsql, Version=3.0.5.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
Я уверен, что провайдер будет что-то вроде 'Npgsql ', а не' System.Data.SqlClient', и я не уверен, что драйвер Postgres поддерживает MARS. [Вот пример] (http://rob.conery.io/2014/02/05/using-entity-framework-6-with-postgresql/) первой конфигурации кода. – StuartLC
@StuartLC Это часть всего, все имена поставщиков - Npgsql. Я не уверен, почему его ссылки на System.Data.SqlClient вообще отсутствуют. – Kamurai