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

How Do I第一篇,难度系数50,定位为入门级。

上一篇对Linq to SQL做了一个大致的介绍,从这一篇起,将对要完成一项Linq to SQL的Case要做 的一些事情,主要从细节上做一些讲解。不会很深入,但是却又是必须的。为了 使讲解不落于泛泛而谈,我们首先来构建实例:

还是以博客园的系统为 例子,既然称Linq to SQL为一个ORM框架,ORM,对象-关系 映射,既然O在前关 系在后,说明O为重,关系是根据O得来的,那么我们就先新建一些Entity Object吧。在一个博客系统里最常见的就是User,Blog,Post。

一个用户 有且仅有一个博客,而一个博客可以有零篇或者多篇博客文章。根据这个描述我 们来建立Entity:

Step 1 建立实体对象

User
/**////
/// 用户类
///
public class User
{
    /**////
    /// 用户标识
    ///
     public int Id { get; set; }
    /**////
    /// 该 用户对应的博客,
    /// 一个用户有且仅有一个博客
     ///
    public Blog Blog { get; set; }
     /**////
    /// 用户名
    ///
    public string UserName { get; set; }
    /**////
    /// 密 码
    ///
    public string Password { get; set; }
    /**////
    /// 昵称
    ///
     public string NickName { get; set; }
    /**////
     /// 用户离开时间
    ///
    public DateTime LeaveTime { get; set; }
}

Blog
/**////
   /// 博客类
  ///
  public class Blog
  {
    /**////
    /// 博客标识
    ///
     public int Id { get; set; }
    /**////
    /// 用 户标识,和用户相关联
    ///
    public int UserId { get; set; }
    /**////
    /// 博客的中文名
     ///
    public string Name { get; set; }
     /**////
    /// 创建时间
    ///
     public DateTime CreateDate { get; set; }
    /**////
     /// 一个博客有零篇或多篇文章
    ///
     public IList<Post> Posts { get; set; }
}
Code
/**////
/// 博客文章类
///
public class Post
{
    /**////
    /// 文章Id
    ///
    public int Id { get; set; }
    /**////
     /// 文章从属的博客
    ///
    public int BlogId { get; set; }
    /**////
    /// 标题
     ///
    public string Title { get; set; }
     /**////
    /// 内容
    ///
    public string Body { get; set; }
    /**////
    /// 发表时 间
    ///
    public DateTime CreateDate { get; set; }
}

时间: 2024-12-03 22:41:26

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

从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