永发信息网

接口是否有间接实现接口的定义

答案:1  悬赏:0  手机版
解决时间 2021-03-24 08:33
  • 提问者网友:感性作祟
  • 2021-03-23 14:52
接口是否有间接实现接口的定义
最佳答案
  • 五星知识达人网友:撞了怀
  • 2021-03-23 16:05
接口有间接实现接口的定义的方法,代码如下。

  public class BaseProvider where T : class
{
//创建EF框架的上下文
//EF上下文的实例保证线程内唯一
//private DataModelContainer db = new DataModelContainer();

///
/// 获取的是当前线程内部的上下文实例,而且保证了线程内上下文唯一
///

private readonly DbContext _db = EFContextFactory.GetCurrentDbContext();

///
/// 实现对数据库的添加功能,添加实现EF框架的引用
///

/// 实体类
/// 最后返回对象的实体类型
public T AddEntity(T entity)
{
//EF4.0的写法 添加实体
//db.CreateObjectSet().AddObject(entity);
//EF5.0的写法
_db.Entry(entity).State = EntityState.Added;
//下面的写法统一
//db.SaveChanges();
return entity;
}

///
/// 实现对数据库的修改功能
///

/// 实体类
/// 返回是否执行成功,如果执行成功,返回true,负责返回false
public bool UpdateEntity(T entity)
{
//EF4.0的写法
//db.CreateObjectSet().Addach(entity);
//db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
//EF5.0的写法
//db.Set().Attach(entity);
_db.Entry(entity).State = EntityState.Modified;

//return db.SaveChanges() > 0;
return true;
}

///
/// 实现对数据库的删除功能
///

/// 实体类
/// 返回是否执行成功,如果执行成功,返回true,负责返回false
public bool DeleteEntity(T entity)
{
//EF4.0的写法
//db.CreateObjectSet().Addach(entity);
//db.ObjectStateManager.ChangeObjectState(entity, EntityState.Deleted);
//EF5.0的写法
_db.Set().Attach(entity);
_db.Entry(entity).State = EntityState.Deleted;

// return db.SaveChanges() > 0;
return true;
}

///
/// 实现对数据库的查询 --简单查询
///

/// 查询的简单条件
/// 返回一个实体类的IQueryable集合
public IQueryable LoadEntities(Expression> whereLambda)
{
//EF4.0的写法
//return db.CreateObjectSet().Where(whereLambda).AsQueryable();
//EF5.0的写法
return _db.Set().Where(whereLambda).AsQueryable();
}

///
/// 实现对数据的分页查询
///

/// 按照某个类进行排序
/// 当前第几页
/// 一页显示多少条数据
/// 总条数
/// 取得排序的条件
/// 如何排序,根据倒叙还是升序
/// 根据那个字段进行排序
/// 返回一个实体类型的IQueryable集合
public IQueryable LoadPageEntities(int pageIndex, int pageSize, out int total, Expression> whereLambda,
bool isAsc, Expression> orderByLambda)
{
//EF4.0和上面的查询一样
//EF5.0
var temp = _db.Set().Where(whereLambda);
total = temp.Count(); //得到总的条数
//排序,获取当前页的数据
if (isAsc)
{
temp = temp.OrderBy(orderByLambda)
.Skip(pageSize * (pageIndex - 1)) //越过多少条
.Take(pageSize).AsQueryable(); //取出多少条
}
else
{
temp = temp.OrderByDescending(orderByLambda)
.Skip(pageSize * (pageIndex - 1)) //越过多少条
.Take(pageSize).AsQueryable(); //取出多少条
}
return temp.AsQueryable();
}
}

  public interface IBaseProvider where T : class, new()
{
///
/// 实现对数据库的添加功能,添加实现EF框架的引用
///

///
///
T AddEntity(T entity);

///
/// 实现对数据库的修改功能
///

///
///
bool UpdateEntity(T entity);

///
/// 实现对数据库的删除功能
///

///
///
bool DeleteEntity(T entity);

///
/// 实现对数据库的查询 --简单查询
///

///
///
IQueryable LoadEntities(Expression> whereLambda);

///
/// 实现对数据的分页查询
///

/// 按照某个类进行排序
/// 当前第几页
/// 一页显示多少条数据
/// 总条数
/// 取得排序的条件
/// 如何排序,根据倒叙还是升序
/// 根据那个字段进行排序
///
IQueryable LoadPageEntities(int pageIndex, int pageSize, out int total, Expression> whereLambda,
bool isAsc, Expression> orderByLambda);
}

  public interface ICS_AccountProvider : IBaseProvider
{

}
public class CS_AccountProvider : BaseProvider,ICS_AccountProvider
{

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯