三层架构

在.net的开发中有很架构模式选择使用,像抽象工厂,三层架构等等,下面来说说三层架构

   三层架构是目前使用最广泛的一种,最大的特点就是结构清晰,主要分为数据访问层,业务逻辑层和现实层

   访问流程是这样的:首先用户从显示层看到内容,并对其操作,然后转到业务逻辑层,进行业务逻辑判断,

   最后传到数据访问层,对数据库进行相关操作,然后再按相反的顺序返回给用户,在这个过程中我们用到了

   实体层!

Modes层是存放实体类的,它是数据传递的载体!为了能保障数据能够稳定以流的方式传递,我们需要对实体进行序列化

    [Serializable]
   public class SysFun
    {
       public int NodeId { get; set; }
       public string DisplayName { get; set; }
       public int parentNodeId { get; set; }
    }

业务逻辑层

using System.Collections.Generic;

 [DataObject]
  public static class UserManager
    {

   ............

    }

三层的流程就不用多说了,相信大家都很明了,下面来说说三层中关于外键的处理

一般情况下我们会采取两种方式进行处理:

1 内连接inner join:在数据表中我们既然建立了主外键的关系,所有要读到两种相关联的表的数据是很简单的,我们只需要在sql语句中写个内连接就可以了

如:select s.name,s.pwd,a.age from student s inner join Age a on s.id=a.id

或者:select s.name,s.pwd,a.age from student,age where student.id=age.id

2 每一张表对应一个类,在拥有外键的类中,创建一个拥有主键类的实例作为其属性,

  访问的时候思路就清晰多了

在插入数据的时候,有时候我们需要这种效果,就是插进去之后,接着读取该插进去信息的记录,这个时候我们可以采取下面的方式实现

private const string SQLINSERT = "insert into Books(Title,Author,CategoryId,UnitPrice,Clicks,PublisherId,PublishDate,ISBN,WordsCount,ContentDescription,AurhorDescription,EditorComment,TOC) values "        "(@Title,@Author,@CategoryId,@UnitPrice,@Clicks,@PublisherId,@PublishDate,@ISBN,@WordsCount,@ContentDescription,@AurhorDescription,@EditorComment,@TOC);" + "select @@identity as BOOKID";

执行的结果就是这个BookID的值

红色的部分就是直接获得它的id的,这样就能很好的获得它的信息了,但是只只适合sqlserver数据库,access数据库不支持,我们可以获得倒序排列的第一个id的信息就可以了select top 1 customid from tb_Custom order by customid desc

 

posted @ 2011-02-24 20:59  双魂人生  阅读(495)  评论(0编辑  收藏  举报