標籤:alt com frame download https class version org wiki
環境:
VS2017 Community
Windows 10
Postgresql 9.6
安裝Postgresql:
https://www.postgresql.org/download/
1.安裝我們需要的Nuget Packages:
install-package npgsql -version 3.1.1Install-Package EntityFramework6.Npgsql -Version 3.1.1
2.首先得安裝一個vs的擴充工具,這樣我們才能在server explorer中像連sql中一樣串連到postgresql資料庫。
3. 安裝好上面的擴充後,我們就在se中建立好我們的串連。
4.我們選擇的是Database First的方式,所以之後我們是從DB裡面來建立我們的DataModel。
5.建立好Model後,我們試著來建立一個EF的Control.
6.看到以下這個錯誤。
7.Build一下我們的project之後,接著看到這個錯誤。
8.在Web config 裡加入如下的配置。
<system.data> <DbProviderFactories> <remove invariant="Npgsql"/> <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql" support="FF"/> </DbProviderFactories> </system.data>
9.應該能看到conttroller建立成功了。
10.但是訪問的時候,可能由於我們的表裡索引和外鍵的關係形成死迴圈,我們需要在Global.asax中加入如下的配置。
HttpConfiguration config = GlobalConfiguration.Configuration;config.Formatters.JsonFormatter .SerializerSettings .ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
接下來可以使用postman來測試自己的API是不是自己想要返回的東西了。
References:
http://www.npgsql.org/doc/index.html
https://www.nuget.org/packages/EntityFramework6.Npgsql/
https://www.nuget.org/packages/Npgsql/
https://github.com/npgsql/npgsql/issues/1439
https://wiki.postgresql.org/wiki/Using_Microsoft_.NET_with_the_PostgreSQL_Database_Server_via_ODBC
https://stackoverflow.com/questions/19467673/entity-framework-self-referencing-loop-detected
使用EF串連Postgresql