(六)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生成得时候不会映射到表字段,但是查询得时候值为空,表里面字段得值不会映射到字段里面去
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现