using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Test.Model;
namespace Test.DAL
{
public class BaseDAL<T> where T : class
{
/// <summary>
/// 数据上下文
/// </summary>
public Model1 Model
{
get
{
return new Model1();
}
}
/// <summary>
/// 查询
/// </summary>
/// <param name="Expression">表达式</param>
/// <returns>List集合</returns>
public List<T> Select(Expression<Func<T, bool>> expression)
{
return Model.Set<T>().Where(expression).ToList();
}
/// <summary>
/// 查询单个对象
/// </summary>
/// <param name="Expression">表达式</param>
/// <returns>单个对象或null</returns>
public T Single(Expression<Func<T, bool>> expression)
{
return Model.Set<T>().FirstOrDefault(expression);
}
/// <summary>
/// 查询单个对象
/// </summary>
/// <param name="id">主键</param>
/// <returns>单个对象或null</returns>
public T Single(int id)
{
//model.ClassInfoes.FirstOrDefault(p => p.Id == id)
return Model.Set<T>().Find(id);//FirstOrDefault LastOrDefault
}
/// <summary>
/// 添加
/// </summary>
/// <param name="info">数据</param>
/// <returns>受影响行数</returns>
public int Insert(T info)
{
Model.Set<T>().Add(info);
return Model.SaveChanges();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="info">数据</param>
/// <returns>受影响行数</returns>
public int Delete(T info)
{
Model.Set<T>().Remove(info);
return Model.SaveChanges();
}
}
}