VS 2008 sp1 + .NET 3.5 sp1(4)

Entity Framework(实体框架)之EntityClient, ObjectQuery

介绍

以Northwind为示例数据库,ADO.NET Entity Framework之详解EntityClient, ObjectQuery

EntityConnection - 与存储模型的连接

EntityCommand - 对 EDM 执行的命令

EntityParameter - 配置 EntityCommand 的参数

EntityDataReader - 以只读、只进的数据流的方式获取数据(内存中始终只有一行)。相当于 SqlDataReader

ObjectQuery<T> - 通过 Entity SQL 或 查询语法 或 Linq 方法对概念模型做查询

ObjectContext.CreateQuery<T>(Entity SQL) - 根据 esql 创建一个 ObjectQuery<T> 。(延迟)

示例

1、关于EntityClient

EntityClient.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
  
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Data.EntityClient;
using System.Data;
  
using VS2008SP1.Business;
  
public partial class EntityFramework_EntityClient : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    if (!Page.IsPostBack)
    {
      Demo();
  
      result.InnerHtml += "<br />";
  
      Demo2();
  
      result.InnerHtml += "<br />";
  
      Demo3();
    }
  }
  
  void Demo()
  {
    string strConn = System.Configuration.ConfigurationManager.ConnectionStrings

["NorthwindEntities"].ConnectionString;
    // EntityConnection - 与存储模型的连接。构造函数的参数为连接字符串
    //   Open() - 打开连接
    //   Close() - 关闭连接
    //   CreateCommand() - 创建此连接的 EntityCommand 对象
    using (EntityConnection conn = new EntityConnection(strConn))
    {
      conn.Open();
  
      try
      {
        // EntityCommand - 对 EDM 执行的命令
        //   CommandType - 命令类型 [System.Data.CommandType枚举]
        //     CommandType.Text - esql语句。默认值
        //     CommandType.StoredProcedure - 存储过程名
        //     CommandType.TableDirect - 表名
        //   CommandText - 命令文本。esql语句或存储过程名或表名
        //   CommandTimeout - 超时时间。单位:秒
        using (EntityCommand cmd = conn.CreateCommand())
        {
          cmd.CommandType = CommandType.Text;
          cmd.CommandText = "select value c from NorthwindEntities.Categories as 

c";
  
          // EntityDataReader - 以只读、只进的数据流的方式获取数据(内存中始终只有

一行)。相当于SqlDataReader
          //   Read() - 读下一条记录
          //   HasRows() - 是否还有可读数据
          //   Close() - 关闭 EntityDataReader
          // EntityCommand.ExecuteReader() - 执行命令,返回 EntityDataReader 对象
          using (EntityDataReader edr = cmd.ExecuteReader

(CommandBehavior.SequentialAccess))
          {
            while (edr.Read())
            {
              result.InnerHtml += edr["CategoryName"].ToString() + "<br 

/>";
            }
          }
        }
      }
      catch (Exception ex)
      {
        result.InnerHtml += ex.ToString();
      }
      finally
      {
        conn.Close();
      }
    }
  
    /**//*
    SELECT
    [Extent1].[CategoryID] AS [CategoryID],
    [Extent1].[CategoryName] AS [CategoryName],
    [Extent1].[Description] AS [Description],
    [Extent1].[Picture] AS [Picture]
    FROM [dbo].[Categories] AS [Extent1]
    */
  }
  
  void Demo2()
  {
    // EntityConnection 构造函数的参数为 name = web.config中的connectionStrings中配置的

连接字符串的name
    using (EntityConnection conn = new EntityConnection("name = NorthwindEntities"))
    {
      conn.Open();
  
      try
      {
        using (EntityCommand cmd = conn.CreateCommand())
        {
          cmd.CommandType = CommandType.Text;
          cmd.CommandText = "select value s from NorthwindEntities.categories as s 

where s.categoryId = @categoryId";
  
          // EntityParameter - 配置 EntityCommand 的参数
          //   ParameterName - 参数名
          //   Value- 参数值
          //   Size - 参数大小
          //   DbTyp - 参数类型 [System.Data.DbType 枚举]
          //   IsNullable - 是否接受 null 值
          EntityParameter param = new EntityParameter();
          param.ParameterName = "categoryId";
          param.Value = 1;
  
          // EntityCommand.Parameters.Add() - 为 EntityCommand 增加参数
          cmd.Parameters.Add(param);
  
          using (EntityDataReader edr = cmd.ExecuteReader

(CommandBehavior.SequentialAccess))
          {
            while (edr.Read())
            {
              result.InnerHtml += edr.GetString(1) + "<br />";
            }
          }
        }
      }
      catch (Exception ex)
      {
        result.InnerHtml += ex.ToString();
      }
      finally
      {
        conn.Close();
      }
    }
  
    /**//*
    exec sp_executesql N'SELECT
    [Extent1].[CategoryID] AS [CategoryID],
    [Extent1].[CategoryName] AS [CategoryName],
    [Extent1].[Description] AS [Description],
    [Extent1].[Picture] AS [Picture]
    FROM [dbo].[Categories] AS [Extent1]
    WHERE [Extent1].[CategoryID] = @categoryId',N'@categoryId int',@categoryId=1
    */
  }
  
  void Demo3()
  {
    // EntityConnectionStringBuilder - 构造连接字符串
    EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
    entityBuilder.Provider = "System.Data.SqlClient";
    entityBuilder.ProviderConnectionString = @"Data 

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Northwind.mdf;Integrated 

Security=True;User Instance=True;MultipleActiveResultSets=True";
    entityBuilder.Metadata = 

@"res://*/Northwind.csdl|res://*/Northwind.ssdl|res://*/Northwind.msl";
  
    using (EntityConnection conn = new EntityConnection(entityBuilder.ConnectionString))
    {
      conn.Open();
  
      try
      {
        using (EntityCommand cmd = conn.CreateCommand())
        {
          // 调用存储过程(需要先做好映射,然后指定概念模型中的函数名称)
          cmd.CommandType = CommandType.StoredProcedure;
          cmd.CommandText = "NorthwindEntities.GetCategory";
  
          EntityParameter param = new EntityParameter();
          param.ParameterName = "CategoryID";
          param.Value = 1;
          cmd.Parameters.Add(param);
  
          using (EntityDataReader edr = cmd.ExecuteReader

(CommandBehavior.SequentialAccess))
          {
            while (edr.Read())
            {
              result.InnerHtml += edr["CategoryName"].ToString() + "<br 

/>";
            }
          }
        }
      }
      catch (Exception ex)
      {
        result.InnerHtml += ex.ToString();
      }
      finally
      {
        conn.Close();
      }
    }
  
    /**//*
    exec [dbo].[spSelectCategory] @CategoryID=1
    */
  }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索参数
, using
, system
, innerhtml
, commandtype
conn
vs2008 .net 3.5、.net 3.5 sp1、.net 3.5 sp1 64位、net framework 3.5sp1、.net 3.5 sp1 下载,以便于您获取更多的相关知识。

时间: 2024-08-22 14:17:50

VS 2008 sp1 + .NET 3.5 sp1(4)的相关文章

VS 2008 sp1 + .NET 3.5 sp1系列文章索引

VS 2008 sp1 + .NET 3.5 sp1(8) - Dynamic Data(动态数据) VS 2008 sp1 + .NET 3.5 sp1(7) - Data Services(数据服务) VS 2008 sp1 + .NET 3.5 sp1(6) VS 2008 sp1 + .NET 3.5 sp1(5) VS 2008 sp1 + .NET 3.5 sp1(4) VS 2008 sp1 + .NET 3.5 sp1(3) VS 2008 sp1 + .NET 3.5 sp1(

VS 2008 sp1 + .NET 3.5 sp1(8)

介绍 以Northwind为示例数据库,演示Dynamic Data(动态数据) MetaModel - 数据库和域对象之间的映射的抽象 MetaModel.RegisterContext() - 使用指定的配置上下文注册指定的数据上下文 Scaffold - 译为基架.即基于数据库架构(linq to sql 或 entity framework)生成网页模板的机 制 ScaffoldTableAttribute(false) - 隐藏指定的表 ScaffoldColumn(false) -

VS 2008 sp1 + .NET 3.5 sp1(7)

介绍 以Northwind为示例数据库,演示ADO.NET Data Services(数据服务) DataService - ADO.NET 数据服务的主入口点. T 为数据源类名 IDataServiceConfiguration.SetEntitySetAccessRule(string name, EntitySetRights rights) - 为指定实体集设置访问规则 QueryInterceptorAttribute - 声明在方法上的查询拦截器 DataServiceConte

VS 2008 sp1 + .NET 3.5 sp1(6)

Entity Framework(实体框架)之Entity SQL 介绍 以Northwind为示例数据库,ADO.NET Entity Framework之详解Entity SQL Linq 方法上也可以使用 esql 查询表达式 select, from, where, order by, group by, having cross join, inner join, left outer join, right outer join, full outer join case when

VS 2008 sp1 + .NET 3.5 sp1(5)

Entity Framework(实体框架)之ObjectContext 介绍 以Northwind为示例数据库,ADO.NET Entity Framework之详解ObjectContext, 以及事务和并发 ObjectContext - 以对象(这些对象是 EDM 中定义的实体类型的实例)的形式与数据进行交互 CreateObjectName - 实体类 的 CreateObjectName 静态方法用于创建实体类的新实例 AddToEntitySetName() - 将需要添加的对象添

VS 2008 sp1 + .NET 3.5 sp1(3)

Entity Framework(实体框架)之详解 Linq To Entities 之二 介绍 以Northwind为示例数据库,ADO.NET Entity Framework之Linq To Entities Select - 选择需要返回的字段 Where - 筛选 OrderBy - 正序排序 OrderByDescending - 倒序排序 ThenBy - 在 OrderBy 或 OrderByDescending 的基础上再正序排序 ThenByDescending - 在 Or

VS 2008 sp1 + .NET 3.5 sp1(1)

Entity Framework(实体框架)之添加.查询.更新和删除的Demo 介绍 以Northwind为示例数据库,ADO.NET Entity Framework之完全面向对象的添加操作.查询操作.更新 操作和删除操作 示例 Overview.html <ul> <li>ADO.NET Entity Framework(EF) - 就当是微软的ORM吧,可以将概念模型映射到逻辑模型 ,从而使用概念模型做开发 </li> <li>Entity - 在EF

VS 2008 sp1 + .NET 3.5 sp1(2)

Entity Framework(实体框架)之详解 Linq To Entities 之一 介绍 以Northwind为示例数据库,ADO.NET Entity Framework之Linq To Entities First - 返回集合中的第一个成员:不延迟 FirstOrDefault - 返回集合中的第一个成员(找不到则返回null):不延迟 All - 是否集合中所有成员都满足某一条件:不延迟 Any - 集合中是否有成员满足某一条件:不延迟 Average - 取平均值:不延迟 Su

Vista SP1你了解多少

2008年4月16日微软发布了Vista SP1中文正式版,并邀请媒体朋友一起对Vista SP1的很多问题进行了讨论和解答.会议上微软透漏了很多关于Vista SP1的细节,而这些细节绝对是那些关心Vista朋友最想要了解到的,包括激活,安装等等.下面就和大家一起分享下. 细节一:关于Vista SP1中文版的发布时间 用户的问题:2008年2月微软就已经发布了英文版的Vista SP1,2008年4月9日中文版Vista SP1中文版开发结束,2008年4月15日晚正式提供给用户下载安装.很