ASPMVC+EF Database First开发

8 篇文章 1 订阅

作为一种ORM,EF(Entity Framework) 从4.0版本开始就在MVC 应用,其开发模式有三种 Database First,Code First,Model First。比较而言,针对Sqlserver 数据库Database First方式的应用相对容易,针对Oracle数据库的Database First方式则有些复杂。

下面以VisioStudio 2013 为例,说明其用法

Sqlserver 数据库Database First

1,建立MVC工程;

2,在Model文件夹位置右键,点击“添加”-“新建项”菜单,出现“新建项”对话框。“新建项”对话框中选择“数据”,再选择“ADO NET 实体数据模型” 后,点击“添加”按钮



4,点击“下一步”



5,再点击“新建连接(C)...”按钮,出现“连接属性”对话框



如果在机器环境同时具有Oracle 与 Sqlserver情况下,默认情况下在“连接属性”对话框中,数据源显示为Oracle,若想连接Sqlserver 数据库对象,需要点击“更改(C)...”按钮


6,在“更改数据源”对话框中选择“Mircrosoft SQL Server” 数据源,点击“确定”按钮



7,更改数据源完成后,即可在对话框中选择“服务器名”,选择“SQL Server 身份验证”方式,输入用户名,密码并选择数据库后,点击“测试连接”按钮验证是否连接数据库,验证通过后,点击“确定”按钮



8,在接下来的“实体数据模型向导”对话框中,点击“是,在连接字符串中包含敏感数据。(I)”Radio 按钮,再点击“下一步”按钮



9,在接下来的“实体数据模型向导”对话框中,点击“下一步”按钮



10,在接下来的“实体数据模型向导”对话框中,选择相应的数据库对象,点击"完成"按钮即可生成对应的实体模型数据文件



11,在生成的Model 1数据模型中,主要包含 Model1.Context.cs(数据集合类)与User.cs(数据表类)两个文件


 其中  Model1.Context.cs 主要内容为

    public partial class testEntities : DbContext
    {
        public testEntities()
            : base("name=testEntities")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    
        public DbSet<User> User { get; set; }
    }

User.cs主要内容为

    public partial class User
    {
        public string name { get; set; }
        public Nullable<int> age { get; set; }
        public string Email { get; set; }
        public int worklevel { get; set; }
    }

12,以上操作已经完成了 Sqlserver 数据库 的EF Database First开发环境的搭建,需要在应用时只要类似如下形式输入action(另外,需要在相应的actin 文件中引用对应模板类)即可

        public ActionResult demo()
        {
            testEntities te = new testEntities();
            List<User> lsit = te.User.ToList();
            return View(list);
        }

Oracle 数据库Database First

1,建立MVC工程;

2,在Vs2013 “解决方案资源管理器”中在相关工程文件名称上右键,点击“管理Nuget程序包”菜单,打开相关对话框


3,在保证联网正常情况下,在“管理Nuget程序包”对话框中搜索区域输入“oracle”,对出现ODP.Net Managed Driver 点击“安装”按钮



4,在Model文件夹位置右键,点击“添加”-“新建项”菜单,出现“新建项”对话框。“新建项”对话框中选择“数据”,再选择“ADO NET 实体数据模型” 后,点击“添加”按钮



5,点击“下一步”



6,再点击“新建连接(C)...”按钮,出现“连接属性”对话框



7,如果在机器环境同时具有Oracle 与 Sqlserver情况下,默认情况下在“连接属性”对话框中,数据源显示为Oracle,选输入用户名,密码并选择数据源名称后,点击“测试连接”按钮验证是否连接数据库,验证通过后,点击“确定”按钮



8,在接下来的“实体数据模型向导”对话框中,点击“是,在连接字符串中包含敏感数据。(I)”Radio 按钮,再点击“下一步”按钮


9,在接下来的“实体数据模型向导”对话框中,点击“下一步”按钮


10,在接下来的“实体数据模型向导”对话框中,选择相应的数据库对象,点击"完成"按钮即可生成对应的实体模型数据文件



在生成的Model 1数据模型中,主要包含 Model1.Context.cs(数据集合类)与ORAUSERS.cs(数据表类)两个文件


 其中  Model1.Context.cs 主要内容为

       public partial class Entities : DbContext
    {
        public Entities()
            : base("name=Entities")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    
        public DbSet<ORAUSERS> ORAUSERS { get; set; }
    }
ORAUSERS.cs主要内容为

    public partial class ORAUSERS
    {
        public string USERNAME { get; set; }
        public Nullable<decimal> AGE { get; set; }
        public string EMAIL { get; set; }
        public Nullable<decimal> USERLEVEL { get; set; }
    }

12,查看web.config ,主要oracle数据源的匹配

其中connectionStrings节中指向的data source= 内容与dataSource 节中的dataSource alias= 内容一致,如本例都为ORCL

  <connectionStrings>
    <add name="Entities" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="data source=ORCL;password=test;user id=TEST"" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <oracle.manageddataaccess.client>
    <version number="*">
      <dataSources>
        <dataSource alias="ORCL" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) "/>
      </dataSources>
    </version>
  </oracle.manageddataaccess.client>


13,以上操作已经完成了 Sqlserver 数据库 的EF Database First开发环境的搭建,需要在应用时只要类似如下形式输入action(另外,需要在相应的actin 文件中引用对应模板类)即可

        public ActionResult demo()
        {
            Entities te = new Entities();
            List<ORAUSERS> list = te.ORAUSERS.ToList();
            return View(list);
        }


      <dataSources>
        <dataSource alias="ORCL" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
      </dataSources>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mystonelxj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值