当前位置: 首页 > news >正文

东莞网站推广优化搜索推广wordpress 相册 链接

东莞网站推广优化搜索推广,wordpress 相册 链接,装修设计效果图网站,seo搜索优化专员最近看了NopCommerce源码#xff0c;用core学习着写了一个项目#xff0c;修改的地方记录下。项目地址 NopCommerce框架出来好久了。18年的第一季度 懒加载出来后也会全部移动到.net core。那么就更好玩了。 项目内容 模仿部分分层模式引擎机制DI容器EF仓储模式Mapping部分修…  最近看了NopCommerce源码用core学习着写了一个项目修改的地方记录下。项目地址   NopCommerce框架出来好久了。18年的第一季度 懒加载出来后也会全部移动到.net core。那么就更好玩了。     项目内容 模仿部分分层模式引擎机制DI容器EF仓储模式Mapping部分修改.net core 重写类库EFcore mysql 动态加载dbset      当然NopCommerce还包含很多特技PluginSeo,订阅发布theme切换等等。这些后期再维护进去。    项目介绍 项目分层     1、Libraries        Nop.Core【核心层】基础设施例领域对象仓库接口引擎接口DI管理接口反射公共方法。         Nop.Data【数据层】EF相关dbcontext仓储实现mapping         Nop.Services【服务层】数据逻辑处理由这层提供。 2、Presentation        Nop.Web【页面层】展示界面。         Nop.Web.Framework【页面基础层】web层的上层封装。例如启动项的实现DI实现。                  详细的分层思想和细节这里不再复述。       2.项目修改点               EF6转换到EFCore数据库选择mysql动态加载dbset 看了相关代码在进行解释     1 public class DataBaseStartup: ISelfStartup2 {3 4 public void ConfigureServices(IServiceCollection services, IConfigurationRoot configuration)5 {6 services.AddDbContextSelfDbContext(x x.UseMySql(configuration.GetConnectionString(MySql)));7 }8 9 public void Configure(IApplicationBuilder application) 10 { 11 var dbContextEngineContext.Current.ServiceProvider.GetServiceSelfDbContext(); 12 dbContext.Database.EnsureCreated(); 13 } 14 15 public int Order { get; } 1; 16 } View Code public SelfDbContext(DbContextOptions options) : base(options){}protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.AddEntityConfigurationsFromAssembly(GetType().Assembly);base.OnModelCreating(modelBuilder);} View Code 1 public static class ModelBuilderExtenions2 {3 private static IEnumerableType GetMappingTypes(this Assembly assembly, Type mappingInterface)4 {5 return assembly.GetTypes().Where(x !x.IsAbstract !x.IsGenericType !x.IsInterface x.GetInterfaces().Any(y y mappingInterface));6 }7 8 public static void AddEntityConfigurationsFromAssembly(this ModelBuilder modelBuilder, Assembly assembly)9 { 10 var mappingTypes assembly.GetMappingTypes(typeof(ISelfEntityMappingConfiguration)); 11 foreach (var config in mappingTypes.Select(Activator.CreateInstance).CastISelfEntityMappingConfiguration()) 12 { 13 config.Map(modelBuilder); 14 } 15 } 16 } View Code 1 public class StudentMapping : ISelfEntityMappingConfiguration2 {3 public void Map(ModelBuilder b)4 {5 b.EntityStudent().ToTable(Student)6 .HasKey(p p.Id);7 8 b.EntityStudent().Property(p p.Class).HasMaxLength(50).IsRequired();9 b.EntityStudent().Property(p p.Name).HasMaxLength(50); 10 } 11 } View Code 1 public interface ISelfEntityMappingConfiguration 2 { 3 void Map(ModelBuilder b); 4 } View Code 1 public class Student:BaseEntity 2 { 3 public string Name { get; set; } 4 5 public string Class { get; set; } 6 } View Code       解释 DataBaseStartup是继承Startup的数据中间件处理类。这里去选择数据库类型和dbcontext以及数据库初始化。Nopcommerce原先是在install那层判断是否存在数据库json处理数据库初始化这里简单化了初始化可以抽象出来再处理。这个类的实现是在web.framwork层。解耦了核心与web层的。这里完全可以自己再重写一个处理类用来切换数据库等其他操作。SelfDbContext是数据处理上下文类。以前写的dbcontext处理新增的实体类dbset都是一个一个属性添加这里是通过反射进行动态加载。相关的方法写在了modelbuilder的扩展方法里面ModelBuilderExtenions是modelbuilder的构建扩展方法的类。里面介绍如何通过反射查找如要map进入的实体map对象。主要通过对比类型继承的接口对象typeISelfEntityMappingConfiguration是所有map对象的上层接口通过这个类的类别判断实体加入到dbcontextStudentMapping和student类是这里举例的例子。Mapping可以对数据字段进行处理。当然也可以直接在实体类加上attribute。    3.项目继承nopcommerce的其他地方 引擎构建。项目中也构建了EngineContext和IEngine。引擎是整个项目启动的处理核心处理的东西不再复述。发现构建了这个之后 可以切换orm框架了。对于一些大型需要对接第三方同步orm那么这个构建出来之后就非常好处理了。当然好处的地方还有更多。仓储模式。这里其实是伪仓储封装多出一个仓库管理员并没有事务聚合根等做法。DI选择auotofac。  转载于:https://www.cnblogs.com/TeemoHQ/p/8343731.html
http://wiki.neutronadmin.com/news/209646/

相关文章:

  • wordpress多站点无法访问怎么开电商
  • 做购物网站哪家公司好男女做暧暧观看免费网站
  • 微网站工程案例展示天津做网站建设
  • 连山网站建设医院门户网站开发
  • 单页网站是什么样子的锐途网站建设
  • 代做电大网站ui作业网站 推送
  • 网站域名过期还能用吗网站上的3d怎么做的
  • 网站描述在关键字前可以吗做网站空间放哪些文件夹
  • 可以不使用备案的网站名吗影院网站怎么做
  • 百度小程序还需要做网站吗wordpress如何使用父导航可点击
  • 专业网站建设网站价格汕头手机端建站模板
  • 山东临沂网站建设网站建设需要多少人
  • 湘潭网站建设 找磐石网络一流wordpress降低sql查询
  • 公司网站制作的费用一键建设网站
  • 外贸网站模板大全网页设计欣赏作品
  • 模板网站的弊端在哪ui设计师要学什么
  • 35互联做的网站34线城市做网站推广
  • 深圳龙岗网站建设培训学校现在学什么行业和技术前景好
  • 千库网网页版登录官网seo系统优化
  • 网站制作推广方案云主机安装多个网站
  • 免费淘宝网站建设襄阳市住房和城乡建设局官方网站
  • 老渔哥网站建设公司wordpress客户端linux
  • 淘宝客建立网站推广怎么做俄语网站模板
  • 网站用什么技术做的简单的手机网站模板下载安装
  • 外贸平台网站手机网站系统
  • 江苏省建设档案网站做网站来联盟怎么样
  • 做网站要什么资料建设银行信用卡在网站激活后如何设置密码
  • 如何判断网站做的关键词天津企朋做网站的公司
  • 做数据的网站有哪些内容给wordpress插件添加po文件
  • 不用代码做网站html湖南营销型网站建设