如何通过.net core EF Core实现调用存储过程的复杂长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1320个文字,预计阅读时间需要6分钟。
前言:在这里,我们将尝试学习一下 .net core EF Core 中调用存储过程的方法。我们知道 EF Core 不支持直接调用存储过程,那么它又提供了哪些方式去执行存储过程呢?以下是一些方法:
前言
在这里,我们将尝试去学习一下 .net core EF Core 中调用存储过程。
我们知道,EF Core 是不支持直接调用存储过程的,那它又提供了什么样的方式去执行存储过程呢?有如下方法:
1、FromSql,官方文档
DbSet<TEntity>.FromSql()
2、执行SQl命令
DbContext.Database.ExecuteSqlCommand()
但是,这两种方式都有局限性:
1、FromSql方式的结果一定要是实体类型,就是数据库表映射的模型。这意味着,执行存储过程返回的结果一定是跟数据库表相关的所有字段;
2、FromSql方式的结果不能有关联关系数据。这就相当于不能 join ,也返回不了 join 的关联表的数据。
3、ExecuteSqlCommand执行插入、更新跟删除的存储过程不能直接映射到实体(EF Core不支持嘛,在讲 EF 跟 EF Core 的区别时已经很清晰了),所以,CUD 方法不能直接调用 SaveChanges 方法。
本文共计1320个文字,预计阅读时间需要6分钟。
前言:在这里,我们将尝试学习一下 .net core EF Core 中调用存储过程的方法。我们知道 EF Core 不支持直接调用存储过程,那么它又提供了哪些方式去执行存储过程呢?以下是一些方法:
前言
在这里,我们将尝试去学习一下 .net core EF Core 中调用存储过程。
我们知道,EF Core 是不支持直接调用存储过程的,那它又提供了什么样的方式去执行存储过程呢?有如下方法:
1、FromSql,官方文档
DbSet<TEntity>.FromSql()
2、执行SQl命令
DbContext.Database.ExecuteSqlCommand()
但是,这两种方式都有局限性:
1、FromSql方式的结果一定要是实体类型,就是数据库表映射的模型。这意味着,执行存储过程返回的结果一定是跟数据库表相关的所有字段;
2、FromSql方式的结果不能有关联关系数据。这就相当于不能 join ,也返回不了 join 的关联表的数据。
3、ExecuteSqlCommand执行插入、更新跟删除的存储过程不能直接映射到实体(EF Core不支持嘛,在讲 EF 跟 EF Core 的区别时已经很清晰了),所以,CUD 方法不能直接调用 SaveChanges 方法。

