接口是否有间接实现接口的定义
答案: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
{
}
public class BaseProvider
{
//创建EF框架的上下文
//EF上下文的实例保证线程内唯一
//private DataModelContainer db = new DataModelContainer();
///
/// 获取的是当前线程内部的上下文实例,而且保证了线程内上下文唯一
///
private readonly DbContext _db = EFContextFactory.GetCurrentDbContext();
///
/// 实现对数据库的添加功能,添加实现EF框架的引用
///
/// 实体类
///
public T AddEntity(T entity)
{
//EF4.0的写法 添加实体
//db.CreateObjectSet
//EF5.0的写法
_db.Entry
//下面的写法统一
//db.SaveChanges();
return entity;
}
///
/// 实现对数据库的修改功能
///
/// 实体类
///
public bool UpdateEntity(T entity)
{
//EF4.0的写法
//db.CreateObjectSet
//db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
//EF5.0的写法
//db.Set
_db.Entry
//return db.SaveChanges() > 0;
return true;
}
///
/// 实现对数据库的删除功能
///
/// 实体类
///
public bool DeleteEntity(T entity)
{
//EF4.0的写法
//db.CreateObjectSet
//db.ObjectStateManager.ChangeObjectState(entity, EntityState.Deleted);
//EF5.0的写法
_db.Set
_db.Entry
// return db.SaveChanges() > 0;
return true;
}
///
/// 实现对数据库的查询 --简单查询
///
/// 查询的简单条件
///
public IQueryable
{
//EF4.0的写法
//return db.CreateObjectSet
//EF5.0的写法
return _db.Set
}
///
/// 实现对数据的分页查询
///
///
/// 当前第几页
/// 一页显示多少条数据
/// 总条数
/// 取得排序的条件
/// 如何排序,根据倒叙还是升序
/// 根据那个字段进行排序
///
public IQueryable
bool isAsc, Expression
{
//EF4.0和上面的查询一样
//EF5.0
var temp = _db.Set
total = temp.Count(); //得到总的条数
//排序,获取当前页的数据
if (isAsc)
{
temp = temp.OrderBy
.Skip
.Take
}
else
{
temp = temp.OrderByDescending
.Skip
.Take
}
return temp.AsQueryable();
}
}
public interface IBaseProvider
{
///
/// 实现对数据库的添加功能,添加实现EF框架的引用
///
///
///
T AddEntity(T entity);
///
/// 实现对数据库的修改功能
///
///
///
bool UpdateEntity(T entity);
///
/// 实现对数据库的删除功能
///
///
///
bool DeleteEntity(T entity);
///
/// 实现对数据库的查询 --简单查询
///
///
///
IQueryable
///
/// 实现对数据的分页查询
///
///
/// 当前第几页
/// 一页显示多少条数据
/// 总条数
/// 取得排序的条件
/// 如何排序,根据倒叙还是升序
/// 根据那个字段进行排序
///
IQueryable
bool isAsc, Expression
}
public interface ICS_AccountProvider : IBaseProvider
{
}
public class CS_AccountProvider : BaseProvider
{
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯