(六)EFCore业务层,相当于继承了泛型基础类得service层(调用存储过程,视图,执行sql)的实现

public class FromeProService : EfDbGet<FromePro>// EfDbGet<FromePro>相当于基础泛型类,FromeProService想到与子类,在里面写拓展的其他非公用方法
{

public FromeProService(PmsContext context) : base(context)
{

}
//执行存储过程
public List<FromePro> GetFrom()
{
return _context.Set<FromePro>().FromSqlRaw<FromePro>("exec Tc").ToList();
}
//执行视图
public List<t1andt3> GetView()
{
return _context.Set<t1andt3>().AsQueryable().ToList();
}
// 执行sql语句
public List<FromePro> GetSqlObj()
{
SqlParameter[] sqs = new SqlParameter[] {
new SqlParameter("name1", "333")
};
string sql = "select T1.*,T3.name1 from T1 join t3 on T1.id=T3.t1id ";
List<FromePro> ts = _context.Set<FromePro>().FromSqlRaw<FromePro>(sql, sqs).ToList();

string ss = _context.Set<FromePro>().FromSqlRaw<FromePro>(sql, sqs).ToQueryString();

return _context.Set<FromePro>().FromSqlRaw<FromePro>(sql).ToList();
}

}

注意点:

t1andt3必须要附加到上下文,只是作为一个存储结果得类

modelBuilder.Entity<t1andt3>().HasNoKey().ToView("t1andt3");//表示把t1andt3附加到上下文,HasNoKey(设置没有主键),这个类得作用是只存储结果

//[NotMapped]
//public int id { get; set; }//NotMapped用codefirst生成得时候不会映射到表字段,但是查询得时候值为空,表里面字段得值不会映射到字段里面去

posted @   yingxianqi  阅读(130)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示