配置LINQ TO SQL

首先添加一个Linq to sql文件,以.dbml结尾的文件。无法把表拖拽到.dbml文件中,提示“所选对象使用不支持的数据提供程序”

    

解决方案

在服务器资源管理器中右键单击连接,选择"修改连接",将数据源由"用于 OLE DB 的 .NET Framework 数据提供程序"

修改为"用于 SQL Server 的 .NET Framework 数据提供程序"即可:

  

  

  

   

   var result = from c in db.Categorys select c  被编译器编译为:

      Table<Category>  table = db.GetTable<Category>();

      var result = from c in table select c;

示例:

添加一个实体类Student.cs

添加命名空间:using System.Data.Linq.Mapping;

 [Table(Name = "Student")]
public class Student
{
private int stu_Id;
[Column(IsPrimaryKey=true)]
public int Stu_Id
{
get { return stu_Id; }
set { stu_Id = value; }
}
private string stu_Name;
[Column]
public string Stu_Name
{
get { return stu_Name; }
set { stu_Name = value; }
}
private int cla_Id;
[Column]
public int Cla_Id
{
get { return cla_Id; }
set { cla_Id = value; }
}
}

 

 添加WebForm1.aspx

添加命名空间:using System.Data.Linq;

        protected void Page_Load(object sender, EventArgs e)
{
DataContext db = new DataContext("Data Source=.;Initial Catalog=Test;Integrated Security=SSPI;");
Table<Student> student= db.GetTable<Student>();
//var result = student.Where(s => s.Stu_Name == "zhangsan").Select(s => s);
var result = student.Select(s => s);
foreach (Student stu in result)
{
Response.Write("学号:" + stu.Stu_Id + " -- " + "姓名:" + stu.Stu_Name +"</br>");
}
}

显示:

  

  二、连接数据库不在使用DataContext,而是创建一个类MSPetShop,然后继承DataContext

  

   

          public MSPetShop(string connection) :base(connection);

        

        

  

  三、表实体与数据库表映射

    

       

       这是 Category实体类

  

       

       这是Product实体类

       3.1 在实体类中添加映射关系

       

        这是Category实体类

      

   这是Product实体类

      

       3.2 两表联合查询

       

   

      

       

       3.3 添加或修改数据

       

       

       

    上图为修改数据

    

上图增加新增数据

示例:

创建一个实体 Class.cs 文件

     [Table(Name = "Class")]
public class Class
{
private int class_Id; //班级号
[Column(IsPrimaryKey=true)]
public int Class_Id
{
get { return class_Id; }
set { class_Id = value; }
}
private string class_Name; //班级名称
[Column]
public string Class_Name
{
get { return class_Name; }
set { class_Name = value; }
} private EntitySet<Student> students;
[Association(Storage = "students",OtherKey = "Class_Id")]
public EntitySet<Student> Students
{
get { return this.students; }
set { this.students.Assign(value); }
}
}

添加实体类Student.cs

   [Table(Name = "Student")]
public class Student
{
private int stu_Id; //学号
[Column(IsPrimaryKey=true)]
public int Stu_Id
{
get { return stu_Id; }
set { stu_Id = value; }
}
private string stu_Name; //学生姓名
[Column]
public string Stu_Name
{
get { return stu_Name; }
set { stu_Name = value; }
}
private int cla_Id; //班级号(外键)
[Column]
public int Cla_Id
{
get { return cla_Id; }
set { cla_Id = value; }
} private EntityRef<Class> classes;
[Association(Storage = "classes",ThisKey="Class_Id")]
public Class Classes
{
get { return this.classes.Entity; }
set { this.classes.Entity = value; }
}
}

添加Linq to sql文件,以.dbml结尾的文件

添加一个类MyDBContext.cs文件

  

     public class MyDBContext :DataContext
{
public Table<Class> Class;
public Table<Student> Student;
public MyDBContext(string connection) : base(connection) { }
}

添加WebForm1.aspx 

         protected void Page_Load(object sender, EventArgs e)
{
MyDBContext db = new MyDBContext("Data Source=.;Initial Catalog=Test;Integrated Security=SSPI;");
var result = from c in db.Student
from s in c.Class
select s; foreach (var item in result)
{
Response.Write("学号:" + item.Student.Stu_Id + " -- " + "姓名:" + item.Student.Stu_Name + " -- " + "班级:" + item.Class_Name + "</br>");
}
}

  

  结果:

LINQ基础 之 LINQ TO SQL (二)的更多相关文章

  1. C#3.0新增功能09 LINQ 基础07 LINQ 中的查询语法和方法语法

    连载目录    [已更新最新开发文章,点击查看详细] 介绍性的语言集成查询 (LINQ) 文档中的大多数查询是使用 LINQ 声明性查询语法编写的.但是在编译代码时,查询语法必须转换为针对 .NET ...

  2. C#3.0新增功能09 LINQ 基础02 LINQ 查询简介

    连载目录    [已更新最新开发文章,点击查看详细] 查询 是一种从数据源检索数据的表达式. 查询通常用专门的查询语言来表示. 随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系数据 ...

  3. C#3.0新增功能09 LINQ 基础06 LINQ 查询操作中的类型关系

    连载目录    [已更新最新开发文章,点击查看详细] 若要有效编写查询,应了解完整的查询操作中的变量类型是如何全部彼此关联的. 如果了解这些关系,就能够更容易地理解文档中的 LINQ 示例和代码示例. ...

  4. C#3.0新增功能09 LINQ 基础03 LINQ 和泛型类型

    连载目录    [已更新最新开发文章,点击查看详细] LINQ 查询基于 .NET Framework 版本 2.0 中引入的泛型类型. 无需深入了解泛型即可开始编写查询. 但是,可能需要了解 2 个 ...

  5. LINQ基础概述

    介绍LINQ基础之前,首说一下LINQ 的历史和LINQ是什么,然后说一下学习 LINQ要了解的东西和 LINQ基础语法   LINQ 的历史 从语言方面的进化 –委托 –匿名方法 –Lambda表达 ...

  6. LINQ基础(二)

    本文主要介绍LINQ查询操作符 LINQ查询为最常用的操作符定义了一个声明语法.还有许多查询操作符可用于Enumerable类. 下面的例子需要用到LINQ基础(一)(http://www.cnblo ...

  7. [.net 面向对象编程基础] (20) LINQ使用

    [.net 面向对象编程基础] (20)  LINQ使用 通过上节LINQ的基础知识的学习,我们可以开始使用LINQ来进行内存数据的查询了,我们上节说了LINQ的定义为:Language Integr ...

  8. Linq基础操作之Select,Where,OrderBy,ThenBy源码分析

    Linq基础操作之Select,Where,OrderBy,ThenBy源码分析 二:Select 它是延迟执行.yield有得一拼,因为他们都是生成了一个枚举类. if (source is TSo ...

  9. [LINQ2Dapper]最完整Dapper To Linq框架(四)---Linq和SQL并行使用

    目录 [LINQ2Dapper]最完整Dapper To Linq框架(一)---基础查询 [LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询 [LINQ2Dapp ...

随机推荐

  1. android fragment 博客 学习记录

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和 ...

  2. 使用ar命令删除iOS静态库重复编译的.o文件

    关于 xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误 看这里 http://www.cnblogs.com/cocoajin/p/3917709.ht ...

  3. 【NOIP 2016】斗地主

    题意 NOIP 2016 斗地主 给你一些牌,按照斗地主的出牌方式,问最少多少次出完所有的牌. 分析 这道题的做法是DFS. 为了体现这道题的锻炼效果,我自己写了好多个代码. Ver1 直接暴力搞,加 ...

  4. C/C++, Java和C#的编译过程解析

    原文地址:http://www.cnblogs.com/rush/p/3155665.html 1.1.1 摘要 我们知道计算机不能直接理解高级语言,它只能理解机器语言,所以我们必须要把高级语言翻译成 ...

  5. win8 卸载IIS

    C:\Windows\System32\inetsrv C:\Windows\iis7.log C:\inetpub

  6. 教你如何用PS制作多款按钮UI设计教程

    教你如何用PS制作多款按钮UI设计教程 本文教大家制作按钮的方法 LV. ★ 初入设计,学做按钮.只会套个底色,加个阴影,字体纯白,小聪明的弄个圆角. LV. ★★(描边.字体.内阴影) 看了很多案例 ...

  7. 利用sklearn计算文本相似性

    利用sklearn计算文本相似性,并将文本之间的相似度矩阵保存到文件当中.这里提取文本TF-IDF特征值进行文本的相似性计算. #!/usr/bin/python # -*- coding: utf- ...

  8. 转:Nginx+Apache环境的安装与配置

    转:http://www.server110.com/nginx/201404/8817.html 我们依然尽可能采用yum来安装我们需要的软件,由系统官方维护的软件,其安全性和稳定性都值得信赖,并且 ...

  9. Entity Framework - 理清关系 - 基于外键关联的单向一对一关系

      注:本文针对的是 Entity Framework Code First 场景. 之前写过三篇文章试图理清Entity Framework中的一对一关系(单相思(单向一对一), 两情相悦(双向一对 ...

  10. visio画UML用例图没有include关系的解决方法

    今天用Microsoft Visio画用例图时,发现visio UML用例里面找不到include关系,即“箭头”+“<>” 这个组件,后来终于发现一个可行的解决办法: 首先:打开Micr ...