zoukankan      html  css  js  c++  java
  • Linq to Entity操作Oracle

    公司的项目一直都是使用Oracle,之前一直都是使用sql, procedure, function直接操作数据库,最近想使用Linq,本来计划要使用Linq to oracle的,可是发现直接使用却很多东西都没有,技术上的支持也不完善,完善点的都是需要版权的..., 之前使用Linq to mysql的时候我使用的是DLinq,这个还不错吧,也是免费的,但是这个在处理Oracle的时候发现很多地方不完善,而且数据库方面太庞大,所以后来就想到使用linq to entity,上网看了下想法还是不错了,所以就试了下,但是在使用中也还是不顺畅的,所以就记录下使用的过程: 

    阅读目录:

      1.环境
      2.安装Oracle
      3.选择相应Oracle工具
      4.安装Oracle工具
      5.创建项目, 建立连接
      6.建立实体数据模型
      7.编码运行

    环境

    VS2010, Oracle11g

    安装Oracle

    首先你的电脑上面需要安装一个oracle,当然没有必要安装11g那么庞大的DB,oracle有一个精简版的叫XE,你只要安装这个就行了,鉴于Oracle的Oracle Developer Tools for Visual Studio最新版本已经是支持11g往上了,所以还是建议安装11g的精简版,如果你已经安装过11g了,那就不用这步操作了,

    选择相应的Oracle工具

    安装好上面的db之后需要安装”Oracle Developer Tools for Visual Studio“,地址:http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html
    这里是一个列表,我使用的是11.2.0.3.20这个版本,如图:

    当然具体需求要具体对待嘛,

    安装Oracle工具

    下载之后就可以安装了,如果你是开发的机器的话选择里面的客户端就行了!

    一路下一步下去就行了,

    补充:这里额外介绍下tns,如果你连接数据库的时候是通过tns,那么请把你的tns文件复制一份放到Oracle Developer Tools for Visual Studio的安装目录下的client_3NetworkAdmin下一份,比如我的放在F:appadminproduct11.2.0client_3NetworkAdmin,11.2.0下有三个目录,client1, client2, client3,放在3里面,这步建议你做

    创建项目, 建立连接

    说下怎么具体使用,打开VS2010,新建一个Asp.net MVC3的项目(我这里是使用MVC,当然WebForm也是可以的),然后在工具>连接到服务器>数据连接>右键添加连接,

    如果不出意外他会自动弹出的就是oracle的连接,

    Data source name:这里选择的就是刚才上面tns里面配置好的连线名称,

    如果你没有做上面一步,那么这里是什么都没有的,选择好你的tns之后填写用户名和密码,其他不要管直接确定就可以了,你就可以看到你的数据库的表/视图/等等的一些东西,如图:

    建立实体数据模型

    下面在你的MVC项目的Models中右键添加>新建项>数据>ADO.NET 实体数据模型,

    然后他会弹框让你选择

    直接双击从数据库生成,然后可以选择刚才的连线,也可以更改连线,是否敏感数据,选择是就OK了!

    至于下面这句将web.config中的实体连接设置另存为:这里的名称虽然说是随便起的,但是还是要规范下,这个将是你后面一直使用的连线名称,我当时就是因为没有注意这个害的我找了很久的错误信息,在下一步之后就是选择表/存储过程/等信息了,

    上步完成后会在web.config中新增一个以刚才名称的连线信息,不过这个连线有点长:

    这里要说下:如果你是在类库中新建的数据库文件,那么会重新生成一个app.config文件,文件里面就只有这段代码,

    编码运行

    上面都是准备工作,下面就开始编码了,当然没有准备工作还能开始编码啊,我们就直接在HomeController的Index中写代码吧,我的代码:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.Mvc;
     6 using System.Data.Objects;
     7 using System.Configuration;
     8 using System.Data.EntityClient;
     9 using System.Data;
    10 using MvcL.Models;
    11 
    12 namespace MvcL.Controllers
    13 {
    14     public class HomeController : Controller
    15     {
    16         public ActionResult Index()
    17         {
    18             //这里的entities就是刚才的那个名字
    19             string con = "name = Entities";
    20 
    21             string res = "";
    22 
    23             using (var ctx = new Entities(con))  //获取连线
    24             {
    25                 //linq查询,这个就不用说了吧,
    26                 var users = from e in ctx.Users where e.ID < 1000 select e;
    27 
    28                 //遍历
    29                 foreach (var User in users)
    30                 {
    31                     res += User.NAME + "<br/>";
    32                 }
    33             }
    34            
    35             ViewBag.Message = res;
    36 
    37             return View();
    38         }
    39 
    40         public ActionResult About()
    41         {
    42             return View();
    43         }
    44     }
    45 }
    View Code

    然后F5运行项目就可以看到查询出来的数据了,

  • 相关阅读:
    java web分页查询初试
    SQL注入原理深度解析
    JS 清除IE缓存
    Android 代码混淆及第三方jar包不被混淆
    [leetcode]Unique Paths II
    ffmpeg API录制rtsp视频流
    HDU 2045 不容易系列之(3)—— LELE的RPG难题
    Ffmpeg和SDL创建线程(转)
    “富豪相亲大会”究竟迷失了什么?
    Ffmpeg和SDL如何同步视频(转)
  • 原文地址:https://www.cnblogs.com/Dn9x/p/3403469.html
Copyright © 2011-2022 走看看