zoukankan      html  css  js  c++  java
  • EF5+MVC4系列(6) 简单三层的搭配(泛型) 实现 增删改查

    1:项目结构

    image

    2:每层添加对其他层的引用,这里我们把除了Web层之外的所有的层生成的文件都放到解决方案下的Library文件夹下,然后每个项目分别来引用里面的dll项目文件.

    我们在Model项目上,右键属性->生成-> 在下面的输出里面,选择上一级的 Library文件夹

    image

    image

    2.2 我们调整项目的生成顺序 ,在解决方案或者是任意项目上右键,选择 生成依赖项,调整各个项目的依赖,这样的目的就是调整项目的生成顺序.

    注意,这里你选择依赖项,并没有给项目与项目之间增加了dll的引用,只是单纯的修改了他们的项目生成顺序而已.

    BLL层依赖 Common层,Model层

    Common依赖 Model层

    Repository依赖 Model和Common层

    BLL依赖 Model,Common,Repository层

    UI层依赖上面的所有的层,那么调整完毕后的项目生成顺序如下

    image

    image  最后的生成顺序是  image

    我们把整个项目编译一下,看看各个项目的生成顺序.

    image

    2.3 我们对各个项目进行引用.

    BLL引用 Library文件夹下        Common层,Model层  生成的dll文件

    Common 引用 Library文件夹下   Model层  生成的dll文件

    Repository 引用 Library文件夹下  ModelCommon层  生成的dll文件

    BLL引用  Library文件夹下           Model,Common,Repository层  生成的dll文件

    UI 层 引用 Library 文件夹下   Model,Common,BLL层 (不用引用 Repository层) 生成的dll文件

    image

    3: 在 Model层,添加EF实体框架,并且把 app.config 里面的链接字符串 拷贝到 UI层里面的 web.config 里面

    4:开始编写 Repository 数据库访问层的代码 

    4.1 编写UserInfoRepository

    UserInfoRepository 用户表的数据库访问代码


    4.2 考虑到我们有多个表,每个表都有这些增删改查,所以我们重构一下,写一个 BaseRepository 类

    image

    BaseRepository


    5 .我们编写 BLL层 业务逻辑层的代码, 首先是  UserInfoService.cs  ,由于 业务逻辑层也是有很多代码,所以我们也是抽象出一个 BaseService.cs 父类出来

    image

    BaseService

    然后我们的UserInfoService.cs  用户表业务逻辑操作类 只需要继承一下这业务基类就可以了

    image

    但是这里有个问题,如果是我们 UserInfoRepository 用户表的数据库访问层,有一个单独的功能,只是针对这个表的(也就是BaseRepository里面没有这个功能),那么我们在 UserInfoService里面,由于继承的是 BaseService 父类,而父类里面的DAL层是使用的 BaseRepository (数据库访问层的基类),那么 UserInfoService里面的dal层也是 BaseRepository, 这样就调用不到  UserInfoRepository 里面的方法了

    image

    解决方法就是在 BaseService里面,把 添加一个  抽象方法 SetCurrentRepository ,专门由子类进行重构,这个方法的作用就是重写父类的 CurrnetRepository来进行new一个数据操作子类

    image

    6. 我们在UI层 进行调用

    image

  • 相关阅读:
    学习完vue指令 做的一个学生信息录入系统
    vue常用指令总结
    vue介绍以及相关概念理解大全
    class类
    javascript闭包详解
    前端必看网站(一直更新中)
    微信小程序wx.getUserInfo获取用户信息
    微信小程序自定义组件注意事项
    微信小程序自定义选项卡
    uni-app开发注意事项及常用样式
  • 原文地址:https://www.cnblogs.com/joeylee/p/3851710.html
Copyright © 2011-2022 走看看