业务逻辑层在Ninesky中实现。核心,其主要功能是封装一些方法,通过调用数据存储层向接口层提供服务。
一、业务逻辑层架构
尼尼微。Core包含三个名称空间:Ninesky。核心,尼尼微。核心。类型,和尼尼微。核心.概述.
尼尼微。核心包含模型和功能实现。Core.Types是项目中使用的一些类型的定义,还有Ninesky。核心。一般是项目中使用的一些方法的定义。
1.尼尼微的结构。核心命名空间
九天上下文-数据上下文
获取数据上下文的工厂类
BaseManager- basic类,它实现了一些常见的数据访问方法,并提供了对其他管理类的继承。
类别-列模型。
CategoryManager-列管理类。
内容-内容模型。
ContentManager-内容管理类。
用户-用户模型
用户管理器-用户管理类
管理员-管理员类
管理员-管理员管理类
2.尼尼微的结构。核心类型命名空间
响应响应返回类。
分页分页数据类。
二、基本功能的实现
1.添加引用
(1)添加实体框架引用
尼尼微。核心项目-参考[右击]-管理新包
在“获取包管理”对话框中选择实体框架并安装它。
(2)添加尼尼微的参考。数据库项目
尼尼微。核心项目-引用[右击]-添加引用
选择项目-解决方案-尼尼微。参考管理器中的DataLibrary,然后单击确定。
2.九天上下文类
NineskyContext类是项目数据的数据上下文,它使模型与数据库的表相对应。
尼尼微。核心项目[右键]-添加类,输入类名NineskyContext。
介绍命名空间系统。数据.实体;进班;
使用系统;使用系统。集合。通用;使用系统。Linq使用系统。文字;使用系统。线程化。任务;使用系统。数据.实体;命名空间Ninesky。核心{公共类NineskyContext:DbContext {公共类NineskyContext()' : base(' DefaultConnection '){数据库。setinitializernieskycontext(new CreateDatabaseIfNotExistsNineskyContext());} }}3.上下文工厂类
ContextFactory是一个简单的工厂类,CurrentContext()是一个静态函数,用来获取当前线程的DbContext。
尼尼微。核心项目[右键]-添加类,输入类名ContextFactory。
添加对系统的引用。类中的runtime.remoting.messaging。在类中实现CurrentContext()静态方法以返回数据上下文NineskyContext。在方法中,通过CallContext类将NineskyContext存储在线程中。
使用系统。运行时。远程处理。消息传递;namespace nine sky . core {///summary////数据上下文工厂////summary公共类上下文工厂{///summary////获取当前线程的数据上下文/////summary////返回数据上下文/返回公共静态的NineskyContext CurrentContext(){ NineskyContext _ nContext=CallContext。GetData('NineskyContext ')作为ninesky context;if(_ nContext==null){ _ nContext=new ninesky context();CallContext。SetData('NineskyContext ',_ nContext);} return _ nContext} }}4.响应类别
Response类是一种常用的方法返回数据类型,它包含三个属性:返回代码、返回消息和返回数据。
[右击]尼尼微。核心项目创建一个新文件夹,并输入名称类型。
在“类型”文件夹中[右键]-添加类,并在弹出的对话框中输入类名“响应”以添加新项目。代码如下:
命名空间nine sky . core . types {///summary//////summary public class response {///summary////return Code . 0-失败,1-成功,其他-请参见方法返回值说明/////summary public int Code { get;设置;}///summary////返回消息////summary公共字符串消息{ get设置;} ///汇总////返回数据////汇总公共动态数据{ get设置;}公共响应(){代码=0;} }}5.分页类
PagingT类是查询分页数据时使用的类,它包含当前页、每页记录数、总记录数和当前页数据列表等多个属性。
在“类型”文件夹中[右键]-添加类,并在弹出的对话框中输入类名Paging以添加新项目。代码如下:
使用系统。集合。通用;命名空间nine sky . core . types {公共类分页{///summary///当前页。从1////summary public int page索引{ get设置;} ///summary ///每页的记录数。默认值为20////summary public int page size { get;设置;}///summary///total records////summary public int总数;///摘要///当前页面记录列表////摘要公共列表项{ get设置;}公共分页(){ page index=1;PageSize=20} }}6.底图管理器类
BaseManager类是所有管理类的基类,包含管理类的常用方法。
重命名尼尼微.级。BaseManager.cs的核心项目
名称空间系统。数据。实体和尼尼微。引入类型来实现常见的方法。
使用尼尼微。核心。类型;使用尼尼微。数据库;使用系统。数据。实体;使用系统Linq .命名空间尼尼微.核心{ ///摘要///管理类的基类////summary ///typeparam name='T '模型类/typeparam公共抽象类BaseManagerT其中T :class { ///summary ///数据仓储类////摘要受保护的存储库存储库;///摘要///默认构造函数////摘要公共BaseManager():这个(上下文工厂.CurrentContext()){ }///summary//构造函数////summary///param name=' DBContext '数据上下文/param public BaseManager(DbContext DbContext){ Repository=new Restoryt(DbContext);} ///摘要///添加////summary///param name=' entity '实体数据/param /返回成功时属性【数据】为添加后的数据实体/返回公共虚拟响应添加(T实体){ Response _ Response=新响应();如果(存储库。添加(实体)0){ _响应。代码=1;_响应。消息='添加数据成功!';_响应。数据=实体;} else { _response .代码=0;_响应。消息='添加数据失败!';} return _ response} ///摘要///更新////summary///param name=' entity '实体数据/param /返回成功时属性【数据】为更新后的数据实体/返回公共虚拟响应更新(T实体){ Response _ Response=新响应();如果(存储库更新(实体)0) { _response .代码=1;_响应。消息='更新数据成功!';_响应。数据=实体;} else { _response .代码=0;_响应。消息='更新数据失败!';} return _ response} ///摘要///删除////summary ///param name='ID '主键/param ///returnsCode:0-删除失败;1-删除陈功;10-记录不存在/返回公共虚拟响应delete(int ID){ Response _ Response=new Response();var _ entity=Find(ID);if (_entity==null) { _response .代码=10;_响应。消息='记录不存在!';} else { if(存储库删除(_实体)0){ _响应.代码=1;_响应。消息='删除数据成功!';} else { _response .代码=0;_响应。消息='删除数据失败!';} } return _ response} ///摘要///查找实体////summary ///param name='ID '主键/param /返回实体/返回公共虚拟查找(整数){ 0返回存储库.查找(标识);} ///摘要///查找数据列表-【所有数据】////summary ///returns所有数据/返回公共IQueryableT FindList(){ 0返回存储库.find LiST();} ///摘要///查找分页数据////summary////param name=' paging '分页数据/param /返回分页数据/返回公共分页查找分页列表(分页){分页。项目=存储库FindPageList(分页。页面大小,分页。分页索引,调出分页总数).to list();返回分页;} ///摘要///总记录数////summary ///returns总记录数/返回公共虚拟int Count(){ 0返回存储库.count();} }}=====================================
代码见:https://九天。codeplex。com/源代码管理/最新
代码下载:https://ninesky.codeplex.com点击源代码点击[计]下载下载源文件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。