zoukankan      html  css  js  c++  java
  • Linq学习笔记一(第一个ORM映射,熟悉一下Linq to sql语法)

    1.在vs08下新建一个普通的网站项目。
    右击网站项目->选择添加新项,然后选择“Linq to sql Classes”,命名为Northwind
    这个文件.dbml是元数据定义文件。把数据库中的表与linq中的表关联起来。

    2.点“服务器资源管理器”添加一个连接,连接到Northwind
    打开表,把Customers表拖到Northwind.dbml中。
    在Northwind.designer.cs中生成类似下面的代码:
    [Table(Name="dbo.Customers")]
    public partial class Customers : INotifyPropertyChanging, INotifyPropertyChanged
    {}
    即创建表Customers对应的映射。

    3.创建了表对应的映射,对数据表的增删改查,就可以像NHibernate那样。
    或者类似建立了表对应的Model,把普通的执行sql语句变成表对象操作。
    避免写繁琐的sql语句。算是官方的ORM(Object/Relation Mapping 对象-关系数据库映射)吧。
    挺方便,以前自己写的Model层,Dal层都省略了。
    先看一下查询吧。

    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    using System.Data.Common;
    using System.Collections.Generic;

    namespace FirstLinq
    {
        
    public partial class _Default : System.Web.UI.Page
        {
            
    protected void Page_Load(object sender, EventArgs e)
            {
                Linq1();
                Linq2();
            }
            
    /// <summary>
            
    /// 熟悉一下linq语法,变量的定义类似js,无须声明类型。
            
    /// </summary>
            private void Linq1()
            {
                var age 
    = 29;
                var username 
    = "greatverve";
                var userlist 
    = new[] { "a""b""c" };
                
    foreach (var user in userlist)
                {
                    Response.Write(user);
                }
            }
            
    /// <summary>
            
    /// 熟悉Linq to sql语法
            
    /// </summary>
            private void Linq2()
            {
                NorthwindDataContext ctx 
    = new NorthwindDataContext("Data Source=ZHANGSHUQIANG;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=sa");
                Customers customer 
    = new Customers();

                
    //执行普通的sql语句,查询CustomerID="ANATR"的记录
                IEnumerable<Customers> customers = ctx.ExecuteQuery<Customers>("select * from Customers where CustomerID='ANATR'");
                customer 
    = customers.First();
                Response.Write(customer.CustomerID);

                
    //使用Linq查询单条记录
                var cus = from c in ctx.Customers where c.CustomerID.Equals("ANATR") select c;
                customer 
    = cus.First();
                Response.Write(customer.CompanyName);

                
    //查询结果集,语法:from 临时表名 in 表集合 orderby 临时表名.字段名 升级序 select 临时表名
                gdvCustomers.DataSource = from cust in ctx.Customers where cust.CustomerID != "ANATR" orderby cust.CompanyName descending select cust;
                gdvCustomers.DataBind();
            }
        }
    }

     前台:

    代码
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="FirstLinq._Default" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        
    <title></title>
    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
            
    <asp:GridView ID="gdvCustomers" runat="server">
            
    </asp:GridView>
        
    </div>
        
    </form>
    </body>
    </html>

    真的是好便捷,普通的小项目完全够了,以后慢慢深入学习吧。

    本文源码下载:https://files.cnblogs.com/greatverve/FirstLinq.rar

  • 相关阅读:
    Android的startActivityForResult()与onActivityResult()与setResult()参数分析,activity带参数的返回
    git stash 保存当前工作状态
    vim diff 的使用
    git pull 命令
    java 开发环境安装
    vim 处理换行符
    git 操作分支
    git 操作远程仓库地址
    vim 宏的使用
    Chrome 调试技巧
  • 原文地址:https://www.cnblogs.com/greatverve/p/1733513.html
Copyright © 2011-2022 走看看