一、测试仓储层、业务层是否能实现对数据库表的操作

1、创建IsysUserInfoRepository接口来继承IBaseRepository父接口

 namespace Wchl.WMBlog.IRepository
{
public partial interface IsysUserInfoRepository : IBaseRepository<sysUserInfo>
{ }
}

2、创建sysUserInfoRepository类继承BaseRepository父类,以及 IsysUserInfoRepository接口

sysUserInfoRepository类:

 namespace Wchl.WMBlog.Repository
{
public partial class sysUserInfoRepository : BaseRepository<sysUserInfo>, IsysUserInfoRepository
{ }
}

3、创建服务接口IsysUserInfoServices继承IBaseServices接口

 namespace Wchl.WMBlog.IServices
{
public partial interface IsysUserInfoServices: IBaseServices<sysUserInfo>
{
}
}

4、创建服务类sysUserInfoServices继承BaseServices,以及IsysUserInfoServices接口

 namespace Wchl.WMBlog.Services
{
public partial class sysUserInfoServices: BaseServices<sysUserInfo>, IsysUserInfoServices
{ }
}

5、服务层的父类BaseServices中baseDal需要new一个仓储父类泛型

public IBaseRepository<TEntity> baseDal = new BaseRepository<TEntity>();

6、在UI层中MVC,HOME控制器index下创建一个添加的实例

  IsysUserInfoServices userinfoservice = new sysUserInfoServices();

         public ActionResult Index()
{
try
{
//var usreinfo = userinfoservice.QueryWhere(c => c.uID > 2).FirstOrDefault();
for (int i = 0; i < 10; i++)
{
userinfoservice.Add(new sysUserInfo()
{
uLoginName = "admin" + i,
uLoginPWD = "",
uRealName = "超级管理员" + i,
uCreateTime = DateTime.Now,
uUpdateTime = DateTime.Now,
uRemark = "测试添加功能"
});
} userinfoservice.SaverChanges();
return Content("添加数据成功");
}
catch (Exception ex)
{ return Content("错误提示:" + ex.Message); ;
} }

7、在WebUI的Web.config中添加数据库链接字符串

8、然后启动系统页面提示

表示数据能够正常录入数据库中,查看数据库

数据库中数据已经可以正常插入,另外对表中的字段约束也成功了。

二、使用Autofac依赖注入分离接口与实例之间的关系,达到解耦的目的

1、使用NuGet管理工具下载Autofac,安装在webUI

2、由于需要在系统启动之前来把所有的类创建好相应的对象

需要在Global文件下添加一个配置文件来实现MVC项目的IOC和DI

3、然后在App_Start文件中创建AutofacConfig文件

AutofacConfig文件

 namespace Wchl.WMBlog.WebUI
{
public class AutofacConfig
{
/// <summary>
/// 负责调用autofac框架实现业务逻辑层和数据仓储层程序集中的类型对象的创建
/// 负责创建MVC控制器类的对象(调用控制器中的有参构造函数),接管DefaultControllerFactory的工作
/// </summary>
public static void Register()
{
//实例化一个autofac的创建容器
var builder = new ContainerBuilder();
//告诉Autofac框架,将来要创建的控制器类存放在哪个程序集 (Wchl.CRM.WebUI)
Assembly controllerAss = Assembly.Load("Wchl.WMBlog.WebUI");
builder.RegisterControllers(controllerAss); //告诉autofac框架注册数据仓储层所在程序集中的所有类的对象实例
Assembly respAss = Assembly.Load("Wchl.WMBlog.Repository");
//创建respAss中的所有类的instance以此类的实现接口存储
builder.RegisterTypes(respAss.GetTypes()).AsImplementedInterfaces(); //告诉autofac框架注册业务逻辑层所在程序集中的所有类的对象实例
Assembly serpAss = Assembly.Load("Wchl.WMBlog.Services");
//创建serAss中的所有类的instance以此类的实现接口存储
builder.RegisterTypes(serpAss.GetTypes()).AsImplementedInterfaces(); // builder.RegisterType<>().As<>(); //创建一个Autofac的容器
var container = builder.Build();
//将MVC的控制器对象实例 交由autofac来创建
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
}
}

4、修改Repository程序集和Services程序集的生成路基到WebUI层的Bin目录下,也可以直接引用的方式。

5、修改HomeController控制器下userinfoservice的生成方式,改为创建构造函数的时候来生成。

6、修改服务层sysUserInfoServices构造函数,使其创建的时候生成相应的对象

把dal复制给dal是为了能拿到sysUserInfoServices中自己特殊的方法。base.baseDal = dal;为拿到父类的公用方法。

BaseServices类中也修改为不需要new一个实例类

7、把homeController下改成查询数据,返回到页面。

显示名字表示Autofac依赖注入成功了

下一篇就是要添加Nlog日志框架以及Cache缓存机制使用使用微软的MemoryCache以及Redis,希望大家多多吐槽,批评指点,谢谢了。

从零开始,搭建博客系统MVC5+EF6搭建框架(2),测试添加数据、集成Autofac依赖注入的更多相关文章

  1. 从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑

    前言      从上篇30岁找份程序员的工作(伪程序员的独白),文章开始,我说过我要用我自学的技术,来搭建一个博客系统,也希望大家给点意见,另外我很感谢博客园的各位朋友们,对我那篇算是自我阶段总结文章 ...

  2. 从零开始,搭建博客系统MVC5+EF6搭建框架(4)上,前后台页面布局页面实现,介绍使用的UI框架以及JS组件

    一.博客系统进度回顾以及页面设计 1.1页面设计说明 紧接前面基础基本完成了框架搭建,现在开始设计页面,前台页面设计我是模仿我博客园的风格来设计的,后台是常规的左右布局风格. 1.2前台页面风格 主页 ...

  3. 从零开始,搭建博客系统MVC5+EF6搭建框架(5),博客详情页、留言、轮播图管理、右侧统计博文

    一.博客系统进度回顾 上一遍博客介绍到,系统已经实现到了发布以及前台布局展示,接下来就是实现一些,详情页,留言.轮播图管理.右侧博文统计信息实现. 二.博客系统详情页实现 2.1先来看看详情页展示的效 ...

  4. 从零开始,搭建博客系统MVC5+EF6搭建框架(4)下,前后台布局实现、发布博客以及展示。

    一.博客系统进度回顾 目前已经完成了,前台展示,以及后台发布的功能,最近都在做这个,其实我在国庆的时候就可以弄完的,但是每天自己弄,突然最后国庆2天,连电脑都不想碰,所以就一直拖着,上一篇写了前端实现 ...

  5. 从零开始,搭建博客系统MVC5+EF6搭建框架(3),添加Nlog日志、缓存机制(MemoryCache、RedisCache)、创建控制器父类BaseController

    一.回顾系统进度以及本章概要 目前博客系统已经数据库创建.以及依赖注入Autofac集成,接下来就是日志和缓存集成,这里日志用的是Nlog,其实还有其他的日志框架如log4,这些博客园都有很多介绍,这 ...

  6. Django快速搭建博客系统

    Django快速搭建博客系统 一.开发环境 Windows 7(64bit) python 3.6   https://www.python.org/ Django 2.0  https://www. ...

  7. day14搭建博客系统项目

    day14搭建博客系统项目 1.下载代码包 [root@web02 opt]# git clone https://gitee.com/lylinux/DjangoBlog.git 2.使用pid安装 ...

  8. 【干货】利用MVC5+EF6搭建博客系统(四)(上)前后台页面布局页面实现,介绍使用的UI框架以及JS组件

    一.博客系统进度回顾以及页面设计 1.1页面设计说明 紧接前面基础基本完成了框架搭建,现在开始设计页面,前台页面设计我是模仿我博客园的风格来设计的,后台是常规的左右布局风格. 1.2前台页面风格 主页 ...

  9. 【干货】利用MVC5+EF6搭建博客系统(四)(下)前后台布局实现、发布博客以及展示

    二.博客系统后台布局实现 2.1.这里所用的是MVC的布局页来实现的,后台主要分为三部分:导航.菜单.主要内容 代码实现: 这里把后台单独放在一个区域里面,所以我这里建立一个admin的区域 在布局页 ...

随机推荐

  1. 迷你MVVM框架avalon在兼容旧式IE做的努力

    很多时候,写代码就像砌砖头,只要我们不关心盖楼的原因.建筑的原理.土木工程基础和工程经验,就算我们砌了100栋高楼,我们也就只是一个砌砖工人,永远也成为不了一个工程师,更别说建筑师了.而那些包工头也只 ...

  2. MySQL 提高Insert性能

    插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例: 连接:(3) 发送查询给服务器:(2) 分析查询:(2) 插入记录:(1x记录大小) 插入索引:(1x索引) 关闭:(1) 这不考虑打开 ...

  3. Azure PowerShell (11) 使用自定义虚拟机镜像模板,创建Azure虚拟机并绑定公网IP(VIP)和内网IP(DIP)

    <Windows Azure Platform 系列文章目录> 前提要求: 1.假设笔者捕获一个Azure虚拟机模板,命名为leistorage 关于Azure虚拟机模板,请参考下图: 2 ...

  4. xamarin UWP证书问题汇总

    打算开发一个软件使用rsa加密的东西,所以有用到数字证书这块,最近遇到些问题, 问题一:使用如下代码添加数字证书后,在证书管理器的当前用户和本地计算机下都找不到这张证书. using (X509Sto ...

  5. OO设计原则

    开闭原则(OCP) 里氏代换原则(LSP) 依赖倒转原则(DIP) 接口隔离原则(ISP) 合成/聚合利用原则(CARP) 迪米特法则(LOD)

  6. oracle数据库表的导入导出cmd命令大全

    在实际的项目开发中经常会遇到导入导出oracle数据库中的表,以下是常用的一些cmd命令: 一.数据表的导出 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daoch ...

  7. 如何变相的绕过QQ邮箱订阅的繁琐核审

    先看看正常流程:http://open.mail.qq.com/ 点击“接入订阅”==>申请接入==>登录一下 选择接入完全免费 大概流程就是这样: 下面我们说说快速接入的方法: 1.登录 ...

  8. UITableView 一直显示滚动条(ScrollBar Indicators)、滚动条Width(宽度)、滚动条Color(颜色)

    在 IOS 中,对 UIScrollView 的滚动条(ScrollBar Indicators)的自定义设置接口,一直都是很少的.除了能自定义简单的样式(UIScrollViewIndicatorS ...

  9. OpenCASCADE Make Primitives-Sphere

    OpenCASCADE Make Primitives-Sphere eryar@163.com Abstract. The sphere is the simplest topology shape ...

  10. 【原创】.NET平台机器学习组件-Infer.NET连载(二)贝叶斯分类器

                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 微软Infer.NET机器学习组件文章目录:http:/ ...