走进Linq-Linq to SQL How do I(2)

对象之间的关系

既然是对象-关系映射,各个表之间肯定不是独立存 在的(如果都是独立存在的,也没有必要用关系数据库了),那么就必然涉及到几 个表之间的联合了。

Linq to SQL和SQL语句一样,支持两种方式的联合 :

1.利用where子句,对两个表进行查找

2.使用join子句

我们还是用例子来说明吧,现在要对blogs和posts进行查询,传入一篇文章的id 的时候,找出这篇文章相关信息的同时还要找出这篇文章属于哪个博客,接着上 篇的例子,我们首先得给Blog类加上映射:

博客类映射(Blog)
/**////
  /// 博客类
  ///
  [Table (Name="blogs")]
  public class Blog
  {
    /**////
    /// 博客标识
    ///
     [Column (Name="blogid",IsPrimaryKey=true,IsDbGenerated=true)]
    public int Id { get; set; }
    /**////
     /// 用户标识,和用户相关联
    ///
    [Column]
    public int UserId { get; set; }
    /**////
     /// 博客的中文名
    ///
    [Column]
     public string Name { get; set; }
    /**////
     /// 创建时间
    ///
    [Column]
     public DateTime CreateDate { get; set; }
    /**////
     /// 一个博客有零篇或多篇文章,这个就先不管了
    /// 不 建立映射关系
    ///
    public IList<Post> Posts { get; set; }
}

时间: 2025-01-31 01:52:08

走进Linq-Linq to SQL How do I(2)的相关文章

从Linq中获取sql语句

问题描述 通常,我们直接IQueryable<T>.ToList()获取IList<T>,但这一次我需要得到其对应的sql语句,然后对sql语句进行再加工.我记得是有这样一个功能的,而且也应该有这样一个功能呀,不然最终用的sql从哪里来?我主要是要利用Sphinx,需要将正常Linq得到的结果和SphinxOE进行join. 解决方案 解决方案二:直接写sql吧用EF的SqlQueryhttps://msdn.microsoft.com/en-us/data/jj592907.as

如何根据linq 表达式生成SQL代码

问题描述 代码运行后得出的SQL代码来不正确,company的被解析成Convert(value(WXMAPTEST.Form1+<>c__DisplayClass0).company))请高手帮忙,下面贴出所有代码privatevoidbutton1_Click(objectsender,EventArgse){using(SqlConnectionSQC=newSqlConnection()){SQC.ConnectionString="DataSource=TESTSERVER

LINQ to SQL语句Union/Intersect/Except介绍

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BegVCSharp_23_15_SetOperators { class Customer { public string ID { get; set; } public string City { get; set; } public string Country { get; set; } publi

从sql走向linq的问题

A left (outer) join B on A.bid=B.id 上面这句话叫做左连接,原因是left(左)join(加入,连入)被译为左连接,所以,这是关于语法中关键字的翻译,而非连接原理,造成不能以为是从第一张表的左边连接.相反,它是从A表的右边开始连接的.原因很简单,比如一个普通的查询语句:select t.id TID from table1 t.后面的那个t是对table1的标记,再看TID它也是对t.id的标记,它们的功能是什么我们暂且不说,起码我们知道了sql的语法习惯是将附

LINQ To SQL深入学习系列之四 LINQ查询基础

本文部分内容整理自msdn 一.LINQ的概念: LINQ是Language Integrated Query(语言集成查询)的简称,它是集成在.NET编程语言中的一种特性 ,这使得查询表达式可以得到很好的编译时语法检查,丰富的元数据,智能感知等强类型语言的好处LINQ 是 Visual Studio 2008 和 .NET Framework 3.5 版中一项突破性的创新,它在对象领域和数据领域之间 架起了一座桥梁. 二.LINQ出现的背景: 传统上,针对数据的查询都是以简单的字符串表示,而没

Linq To Sql进阶系列(一)-从映射讲起

本系列,或多或少,直接或间接依赖入门系列知识.但,依然追求独立成章.因本文作者水平有限, 文中错误难免,敬请读者指出并谅解.本系列将会和入门并存. 案例 某君被邀为一超市设计数据库,用来存储数据.该君根据该超市中实际出现的对象,设计了 Customer, Employee,Order, Product等表,用来保存相应的客户,员工,订单,货品等.太好了,该 君很有oo的思想吗. 如果,你被要求用类及对象,来描述该关系型数据,你该如何做呢?在linq推出之前,ADO.NET被用 来做数据访问层.而

asp.net使用LINQ to SQL连接数据库及SQL操作语句用法分析_实用技巧

本文实例讲述了asp.net使用LINQ to SQL连接数据库及SQL操作语句用法.分享给大家供大家参考,具体如下: LINQ简介 LINQ:语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据. LINQ是一门查询语言,和SQL一样,通过一些关键字的组合,实现最终的查询. LINQ的分类 LINQ to Object LINQ to XML LIN

SQL2008 LINQ to Entity

准备工作 预计完成本实验所需的时间 40 分钟 目标 在完成本实验后,您将可以: •创建数据库的实体数据模型 •使用LINQ查询语言访问实体数据模型 先决条件 在完成本实验前,您必须具有: •使用C#编写ADO.NET数据访问技术的相关经验. 实验场景 A trend among database developers is to define high-level business objects, or entities, that they then map to the tables a

Linq学习(1) 概述

本篇简单回顾C#语言集合操作的变化,通过与Linq对等的面向对象的语法来认识Linq. Linq是Language Integrated Query, 初识Linq感觉跟SQL Server的Tsql很像,可以进行语言必备的逻辑操作,也可以实现对集合的直接查询. Net1.X时代 C#不支持泛型,集合用元素只能为object类型的ArrayList等. 添加.取出元素都与Object类型进行强制类型转换, 如果是值类型要进行装箱操作,取出元素时进行拆箱操作,影响效率, 编译时不进行类型检查,类型

学习LINQ工具:LINQPad

LINQPad支持C# 3.0 和 Framework 3.5的全部功能: LINQ to SQL LINQ to Objects LINQ to XML LINQPad 也是一个很好的学习LINQ的工具,包含<C# 3.0 in a Nutshell>一书中200个示例,可以使用LINQPad感受LINQ的超酷功能和函数编程. LINQPad 是完全免费的,无需安装,下载之后直接可以运行,只有2.12 MB大小.LINQPad 需要先安装.NET Framework 3.5,支持 SQL E