uot;, Sex = "男", Age = 21 };
break;
default:
student = new Student() { StuNo = "10003", Name = "王五", Sex = "男", Age = 25 };
break;
}
return student;
}
}
}
该类实现了IStudentRepository接口
三、服务层
本demo的服务层需要引用我们的实体层TianYa.DotNetShare.Model和我们的仓储层TianYa.DotNetShare.Repository
服务层与仓储层类似,它属于仓储层的使用者。定义的方式也与仓储层类似,有接口和Impl实现目录。
但服务层不需要一个实体对应一个,服务层更多的是按照功能模块进行划分,比如一个登录模块,创建一个LoginService。
约定:
1、服务层接口都以“I”开头,以“Service”结尾。服务层实现都以“Service”结尾。
为了演示,我们新建一个Student的服务层接口IStudentService.cs
using System;
using System.Collections.Generic;
using System.Text;
using TianYa.DotNetShare.Model;
namespace TianYa.DotNetShare.Service
{
/// <summary>
/// 学生类服务层接口
/// </summary>
public interface IStudentService
{
/// <summary>
/// 根据学号获取学生信息
/// </summary>
/// <param name="stuNo">学号</param>
/// <returns>学生信息</returns>
Student GetStuInfo(string stuNo);
}
}
接着我们同样在Impl中新建一个Student的服务层实现StudentService.cs
using System;
using System.Collections.Generic;
using System.Text;
using TianYa.DotNetShare.Model;
using TianYa.DotNetShare.Repository;
namespace TianYa.DotNetShare.Service.Impl
{
/// <summary>
/// 学生类服务层
/// </summary>
public class StudentService : IStudentService
{
/// <summary>
/// 定义仓储层学生抽象类对象
/// </summary>
protected IStudentRepository StuRepository;
/// <summary>
/// 空构造函数
/// </summary>
public StudentService() { }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="stuRepository">仓储层学生抽象类对象</param>
public StudentService(IStudentRepository stuRepository)
{
this.StuRepository = stuRepository;
}
/// <summary>
/// 根据学号获取学生信息
/// </summary>
/// <param name="stuNo">学号</param>
/// <returns>学生信息</returns>
public Student GetStuInfo(string stuNo)
{
var stu = StuRepository.GetStuInfo(stuNo);
return stu;
}
}
}
该类实现了IStudentService接口
四、公共工具类库
公共工具类库就是将来我们要在里面写各种各样的帮助类以提高程序的可复用性,此处就不做赘述。
五、Sharp核心类库
需要从NuGet上引用以下几个程序集:
Sharp核心类库为公共的基础类,最底层。
其中Model文件夹为实体目录,主要存放数据库连接相关的实体。Extensions文件夹为扩展目录,主要存放最底层的扩展类,我们底层的批量依赖注入就放在这里面。
在Model实体目录中我们新建一个用于数据库连接的接口IDataBaseSetting.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace TianYa.DotNetShare.SharpCore.Model
{
public interface IDataBaseSetting
{
/// <summary>
/// 访问数据库连接串
/// </summary>
string ConnectionString { get; set; }
/// <summary>
/// 数据库名称,当是关系型数据库时,DatabaseName属性没用到
/// </summary>
string DatabaseName { get; set; }
}
}
接着添加一个用于数据库连接的实现类DataBaseSetting.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace TianYa.DotNetShare.SharpCore.Model
{
public class DataBaseSetting : IDataBaseSetting
{
/// <summary>
/// 访问数据库连接串
/// </summary>
public string ConnectionString { get; set; }
/// <summary>
/// 数据库名称,当是关系型数据库时,DatabaseName属性没用到
/// </summary>
public string DatabaseName { get; set; }
}
}
该类实现了IDataBaseSetting.cs接口
Model实体目录主要用于以后涉及到数据库访 |