EntityFramework6(EF6)连接Postgresql数据库

软件:VS2017 CommunityPostgresql

1.新建一个MVC框架的ASP.NET Web应用程序项目:

EntityFramework6(EF6)连接Postgresql数据库_第1张图片


2.打开菜单栏工具下的扩展与更新,找到Npgsql PostgreSQL Interaction插件并安装,这样才能在server explorer中连接到postgresql数据库:

EntityFramework6(EF6)连接Postgresql数据库_第2张图片


3.使用Nuget程序包管理器控制台安装连接所需要的Nuget包,输入如下代码:

install-package npgsql -version 3.2.7
install-Package EntityFramework6.Npgsql -Version 3.1.1

安装完后即可在解决方案管理器的引用下看到如下所添加的引用:

EntityFramework6(EF6)连接Postgresql数据库_第3张图片


4.做完这些准备后,接下来开始连接postgresql,打开菜单栏工具下的“连接到数据库”,选择postgresql,输入所要连接的数据库名,完成数据库连接:

EntityFramework6(EF6)连接Postgresql数据库_第4张图片

EntityFramework6(EF6)连接Postgresql数据库_第5张图片


5.接下来创建一个实体数据模型,选择Models文件夹右击添加/新建项,然后选择数据栏里的ADO.NET实体数据模型:

EntityFramework6(EF6)连接Postgresql数据库_第6张图片

选择来自数据库的EF设计器,进行如下操作:

EntityFramework6(EF6)连接Postgresql数据库_第7张图片

EntityFramework6(EF6)连接Postgresql数据库_第8张图片

 注:连接设置另存为的文件名同时也是后续连接所要创建的类名

EntityFramework6(EF6)连接Postgresql数据库_第9张图片

模型建立完成后会在Models文件夹下生成Model1.edmx文件,如下:

EntityFramework6(EF6)连接Postgresql数据库_第10张图片    EntityFramework6(EF6)连接Postgresql数据库_第11张图片


6.建立好模型后,我们在建立一个模型的控制器,选择Conteoller文件夹右击添加/控制器,选择空的MVC 5控制器:

EntityFramework6(EF6)连接Postgresql数据库_第12张图片


7.Web config 里添加如下代码:


    
      
      
    
  

若没有添加则会发生如下错误:

EntityFramework6(EF6)连接Postgresql数据库_第13张图片


8.在控制器的Index方法里编辑如下代码(以及相应的using语句):

using Test.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Test.Controllers
{
    public class TestController : Controller
    {
        // GET: Test
        public ActionResult Index()
        {
            Database myDatabase = new Database();
            //查询
            var list = from s in myDatabase.student
                       select s;
            return View(list);
        }
    }
}


9.接着添加一个视图来显示我们查询的数据,鼠标点击View()函数右击添加视图:

EntityFramework6(EF6)连接Postgresql数据库_第14张图片


10.编辑视图,在

里添加table,以及添加相应的引用,代码如下:

@model IQueryable
@using Test.Models
@{
    Layout = null;
}





    
    Index


    
@foreach (student s in Model) { }
学号 姓名
@s.sno @s.sname

11.最后将默认的控制器改成刚刚我们建立的控制器,编辑App_Start文件夹下的RouteConfig.cs文件,将controlre的参数改成Test(即控制器名),运行即可查看查询结果。

注:若出现依赖错误,可能是因为Nuget包版本问题,只需更新后即可解决

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Test", action = "Index", id = UrlParameter.Optional }
            );

EntityFramework6(EF6)连接Postgresql数据库_第15张图片


你可能感兴趣的:(EntityFramework6(EF6)连接Postgresql数据库)