VS2015 ASP.NET MVC5 EntityFramework6 Oracle 环境篇

Posted tnsstar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2015 ASP.NET MVC5 EntityFramework6 Oracle 环境篇相关的知识,希望对你有一定的参考价值。

//来源:https://www.cnblogs.com/lauer0246/articles/9576940.html

Asp.Net MVC EF各版本区别

2009年發行ASP.NET MVC 1.0版

2010年發行ASP.NET MVC 2.0版,VS2010

2011年發行ASP.NET MVC 3.0版+EF4,需要.Net4.0支持,VS2011

2012年發行ASP.NET MVC 4.0版+EF5,需要.Net4.0支持,VS2012

2013年發行ASP.NET MVC 5.0版+EF6,需要.Net4.5支持,VS2013

2015年發行ASP.NET MVC 6.0版+EF7,需要.Net5.0支持,VS2015

ASP.NET 5.0      将改名为  ASP.NET Core 1.0

ASP.NET MVC 6     将改名为  ASP.NET MVC Core 1.0

Entity Framework 7.0    将改名为  Entity Framework Core 1.0

详细区别见:https://www.cnblogs.com/liangxiaofeng/p/5840754.html

 

1、MVC环境配置

打开VS2015新建ASP.NET WEB程序,选择.NET Framework4.5(此时对应的MVC版本为5.0)

 技术图片

然后选择MVC,创建MVC架构的web项目。

技术图片

如果没有mvc选项,则说明没有安装MVC5,解决方法:

在VS中打开Nuget控制台,输入
Install-Package Microsoft.AspNet.Mvc -Version 5.0.0

等待安装完成。

 

2、EntityFramework6环境配置

新建web项目完成后,展开项目引用列表,如果有EntityFramework,则说明项目已包含EntityFramework包,并且可以查看属性,确认使用的EF版本

技术图片

如果没有该引用项,需要安装。打开菜单栏“工具”->NuGet包管理器->管理解放方案的NuGet程序包

技术图片

打开包管理器后,选择浏览页面,输入entityframework,选中EntityFramework,勾选当前项目,点击安装即可。

技术图片

安装完成后,引用列表里会自动添加EntityFramework和EntityFramework.SqlServer项。

 

为单个项目添加引用EntityFramework:Install-Package EntityFramework -Version 6.0.0.0

 

3、Oracle EntityFramework6环境配置

与EntityFramework配置类似,在NuGet包管理器中输入oracle,搜索支持Oracle的EntityFramework包

技术图片

选中Oracle.ManagedDataAccess.EntityFramework,再勾选当前项目,点击安装,自动安装Oracle.ManagedDataAccess和Oracle.ManagedDataAccess.EntityFramework2个包。

安装完成后,引用列表会出现这2项。同时会自动在项目根目录下的web.config中添加相关的配置项。

技术图片

注意:默认添加的配置项,会报错:oracle.manageddataaccess.client有重复配置,注释掉上面的一行oracle.manageddataaccess.client问题解决。

 

4、oracle EF调用

配置Web.Config中的OracleDbContext项,connectionString为数据库的用户名,密码,数据库地址

在Model文件夹新建数据库访问类OracleDbContext(类名可自定义,但必须与web.config中connectionStrings下的名称一致)

技术图片
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace MvcOracle.Models

    public class OracleDbContext : DbContext
    
        private readonly static string Connection_String = "name=OracleDbContext";
        public OracleDbContext()
            : base(Connection_String)
        
            Database.SetInitializer<OracleDbContext>(new CreateDatabaseIfNotExists<OracleDbContext>());
        

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        
            modelBuilder.HasDefaultSchema("LYDXHF");//LYDXHF为数据库用户名
    

     public DbSet<GG_ZTXXB> listGG_ZTXXB get; set; //GG_ZTXXB为数据表实体类
   
技术图片

如果不指定数据库用户名,EF会自动默认访问dbo用户,导致数据访问失败。

 

以上是关于VS2015 ASP.NET MVC5 EntityFramework6 Oracle 环境篇的主要内容,如果未能解决你的问题,请参考以下文章

VS 2015 ASP.NET 4 MVC 5 中的打字稿 - 设置和选择的工作组合是啥?

Asp.net mvc5引用ExtJS6全网首发

《ASP.NET MVC 5 破境之道》:第一境 ASP.Net MVC5项目初探 — 第二节:MVC5项目结构

亲测Asp.net Mvc5 + EF6 code first 方式连接MySQL总结

ASP.NET MVC5/IIS Express 无法调试 - 代码未运行

如何部署 ASP.NET MVC5 应用程序的“发布”版本