数据访问层

Nop.Data项目包含用于与数据库及其它数据存储交互的类和功能。Nop.Data类库帮助将数据访问逻辑和业务对象分离。Nop使用的是Entity Framework Code First方式。Code-First使得开发人员可以在源代码中定义实体(Nop中的核心实体定义在Nop.Core项目中),然后使用EF根据C#类生成数据库。这就是为什么称作Code-First。然后你还可以使用LINQ查询对象,这将被在后台转换成SQL并在数据库中执行。Nop使用a fluent code API 自定义持久化映射。可以从here or here了解code-first。

控制反转和依赖注入

Nop使用Autofac类库作为Ioc容器,一旦完成一个service和它实现的接口,需要在任何一个实现IDependencyRegistrar接口的类中注册(Nop.Core.Infrastructure.DependencyManagement )。比如,所有nop的核心service都在Nop.Web.Framework类库里的DendencyRegistrar类中被注册。

 public class DependencyRegistrar : IDependencyRegistrar
{
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder)
{
builder.Register(c => c.Resolve<HttpContextBase>().Request)
.As<HttpRequestBase>()
.InstancePerHttpRequest(); ...
}
}

你可以根据需求创建多个dependency registrar 类。每个实现IDependencyRegistrar接口的类都有一个Order属性。它可用于替代现有依赖。要覆盖nop的依赖,将Order设置成大于0的值。nop按照order升序排序依赖类。值越大对象将被越晚注册。

如何注册新路由

最新文章

  1. Android 添加ActionBar Buttons
  2. JavaScript之web通信
  3. jsp原理
  4. python3 linux下安装
  5. PV 与 并发数 之间的故事
  6. 根据Expander的IsExpanded属性值的变化动态设计Control的size
  7. &quot;琳琅满屋&quot;调查问卷 心得体会及结果分析
  8. 【每日scrum】NO.2
  9. DP 子序列问题
  10. WebAPI接口测试之matthewcv.WebApiTestClient
  11. 浅谈Linux系统的启动流程
  12. Android图像篇
  13. 苹果新的编程语言 Swift 语言进阶(一)--综述
  14. MySQL之 InnoDB记录结构(转自掘金小册 MySQL是怎样运行的,版权归作者所有!)
  15. 即将上线的Kafka服务器面临的一系列填坑笔记
  16. Java反射的用法
  17. 四、K3 WISE 开发插件《工业单据老单插件开发新手指导》
  18. sql经常出现死锁解决办法
  19. python学习(25) BeautifulSoup介绍和实战
  20. 学号20155308 2016-2017-2 《Java程序设计》第7周学习总结

热门文章

  1. DOCTYPE的笔记
  2. ubuntu14.04修复启动项
  3. [WebService]之TCPMon的使用
  4. 基于MapReduce的关系代数运算(1)
  5. LCA of a Binary Tree
  6. flex中文说明手册
  7. 深入理解PHP Opcode缓存原理
  8. Linux下的sort排序命令详解(二)
  9. 用keyword实现Editor.GetSelection的退出功能
  10. 使用timer8秒读取一次方法进行操作