第一步:
新建一个商城项目,把登录页面和主页面放进去。
第二步:
新建一个实体类库,在类库里添加ADO.NET实体模型将数据库里的表转换为实体类,然后在程序包管理里面安装EntityFramework包。
数据库脚本如下:
Create database Test;
use Test;
create table Login(
Id [int] IDENTITY(1,1) NOT NULL,
UserName varchar(50),
UserPass varchar(50),
LoginTime datetime)
create table Functon(
[Id] [int] IDENTITY(1,1) NOT NULL,
[MenuId] [int] NULL,
[Name] [varchar](50) NULL,
[ControllerName] [varchar](50) NULL,
[ActionName] [varchar](50) NULL,
[FunctionCode] [varchar](50) NULL,
[Remark] [varchar](200) NULL,)
第三步:
新建一个数据访问层类库,在类库里添加EF 6.x DbContext生成器,然后再将Model1.tt里面的内容替换成T4模板的内容,再将T4模板里的路径和引用改成这个项目的路径和引用就行了,然后保存就能生成数据访问层,再在数据库访问层类库添加一个基类和唯一获取实例类:
第四步:
新建一个业务层类库,然后再类库里添加一个基类,添加数据访问层的引用。代码如下:
public class BaseService<T> where T : class
{
private BaseRepository<T, TestEntities> baseRepository = new BaseRepository<T,TestEntities>();
#region 添加
/// <summary>
/// 单表添加一条记录
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public virtual bool Add(T entity)
{
return baseRepository.Add(entity);
}
/// <summary>
/// 单表的添加多条记录
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public virtual bool AddRange(List<T> entity)
{
return baseRepository.AddRange(entity);
}
#endregion
#region 修改
/// <summary>
/// 单表的修改数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public virtual bool Update(T entity)
{
return baseRepository.Update(entity);
}
#endregion
#region 删除
/// <summary>
/// 单表的删除数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public virtual bool Delete(T entity)
{
return baseRepository.Delete(entity);
}
/// <summary>
/// 删除多个数据
/// </summary>
/// <param name="entities"></param>
/// <returns></returns>
public virtual bool BactchDelete(List<T> entities)
{
return baseRepository.BactchDelete(entities);
}
/// <summary>
/// 根据id删除多个实体
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public virtual bool BactchDelete(params int[] ids)
{
return baseRepository.BactchDelete(ids);
}
#endregion
#region 查询
/// <summary>
/// 查询返回一个集合
/// </summary>
/// <param name="lambdaExpression"></param>
/// <returns></returns>
public virtual List<T> QueryList(Expression<Func<T, bool>> lambdaExpression)
{
return baseRepository.QueryList(lambdaExpression);
}
/// <summary>
/// 查询返回一个对象,没有返回null
/// </summary>
/// <param name="lambdaExpression"></param>
/// <returns></returns>
public virtual T Query(Expression<Func<T, bool>> lambdaExpression)
{
return baseRepository.Query(lambdaExpression);
}
/// <summary>