.NET Core 实体框架存储过程

2024-01-04

我正在尝试将 ASP.NET 4.5 应用程序移植到 .NET Core,但有一个我似乎无法解决的实际问题。

我现有的应用程序执行存储过程,该存储过程返回具有多个数据表的数据集。实体框架可以自动将返回的字段映射到我的实体属性,但仅适用于数据集中的第一个数据表(自然)。

因此,我只是想弄清楚是否有可能以某种方式拦截模型构建过程并使用自定义代码来处理数据集并查看其他数据表以设置实体字段。

我知道我可以使用直接使用执行存储过程的正常方式SqlConnection但我想知道实体框架是否已经有某种方法可以做到这一点。


眼下,执行存储过程的方式 http://www.learnentityframeworkcore.com/raw-sql返回数据是使用DbSet.FromSql方法。

using (var context = new SampleContext())
{
    var data= context.MyEntity
        .FromSql("EXEC GetData")
        .ToList();
}

这有一定的局限性:

  • 必须调用它DbSet
  • 返回的数据必须映射到DbSet type
  • 它不支持临时对象。

或者您可以退回到普通的 ADO.NET:

using (var context = new SampleContext())
using (var command = context.Database.GetDbConnection().CreateCommand())
{
    command.CommandText = "GetData";
    command.CommandType = CommandType.StoredProcedure;
    context.Database.OpenConnection();
    using (var result = command.ExecuteReader())
    {
        // do something with result
    }
}

计划引入对返回临时类型的支持 https://github.com/aspnet/EntityFramework/issues/1862来自某个阶段的 SQL 查询。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET Core 实体框架存储过程 的相关文章

  • boost::interprocess 准备好迎接黄金时间了吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个由内存映射文件支持的线
  • C++ 有像 Pascal 一样的“with”关键字吗?

    withPascal 中的关键字可用于快速访问记录的字段 有人知道 C 是否有类似的东西吗 前任 我有一个包含许多字段的指针 但我不想这样输入 if pointer gt field1 pointer gt field2 pointer g
  • 如何将 C++ 类包装在基于 C 的 dll 或基于 CLI 的 dll 中?

    我被告知将我用 C 编写的类导入到 dll 中 然后在 c 应用程序中使用该 dll 下列的本指南 https stackoverflow com questions 4555961 how to use a class in dll我创建
  • C++ - 模板专业化和部分专业化

    我一直在互联网和 stackoverflow 上寻找具体的答案 但我似乎找不到 我必须创建一个通用类 然后实现特定的功能 我的具体说明是 您需要使用模板表达式参数以及模板类专业化和部分专业化 我有一个模板类 template
  • 浏览器收集哪些值作为回发数据?

    当页面被发送回服务器时 浏览器收集每个控件的当前值并将其粘贴到一个字符串中 然后 该回发数据通过 HTTP POST 发送回服务器 Q1 除了控件的 Text 属性和 SelectedIndexchanged 因此除了用户输入数据 之外 控
  • 使用 QSet 作为 Qt 地图容器中的键

    我需要一个映射 其中键是唯一的 并且每个键都是一组或自定义 POD 结构 其中包含 3 个数据项 这些值只是指向对象实例的指针 从阅读Qt 的 QMap 与 QHash 的文档 http qt project org doc qt 4 8
  • C# ConfigurationManager 从 app.config 检索错误的连接字符串

    我有一个简单的 WinForms 应用程序 它最终将成为一个游戏 现在 我正在研究它的数据访问层 但遇到了障碍 我创建了一个单独的项目 名为DataAccess在其中 我创建了一个本地 mdfSQL Server 数据库文件 我还创建了一个
  • 当我尝试使用 AVX 功能时,Clang 生成错误

    我使用的是 Windows 10 使用 Clang 版本 5 最近安装 当我编译以下内容时 define AVX define AVX2 include
  • 首先EntityFramework数据库 - 类型映射 - 将binary(8)从SQL映射到C#中的int

    在 SQL 内部 我有一个主键为二进制 8 的表 当我使用该表添加到我的模型中时Update Model from Database我可以看到该列有 type Binary 在 C 中 我将该列设为byte 我可以将该列映射到 int 吗
  • 使用 Microsoft Graph 创建用户

    如何使用 Microsoft graph 创建用户 因为我在保存过程中遇到了权限失败的问题 我确实有几个问题 在图中调用创建用户 API 将在哪里创建用户 是在 Azure AD 还是其他地方 我尝试通过传递 json 和必需的标头来调用创
  • C++ 析构函数:何时释放内存?

    如果我删除一个导致其析构函数被调用的对象 那么内存是在析构函数完成函数中的任何操作之前还是之后被释放 仅当最小派生类子对象被销毁后才会释放内存 所以如果你有 class Base class Derived public Base publ
  • IBM Watson 对话服务错误:无法从“方法组”转换为“conversation.onMessage”

    我正在尝试运行 IBM Watson会话服务团结和下面是代码片段 https github com watson developer cloud unity sdk conversation private Conversation m C
  • 如何使用 C# 代码使用超链接的 onClick 事件?

    我正在尝试为页面中的超链接添加条件 而不是仅仅使用特定的链接 例如 a href help Tutorial html Tutorial a 我想为不同的用户显示不同的页面 例如 如果用户以管理员身份登录 他们将看到与普通用户不同的链接 我
  • 从存储过程返回 int 值并在 ASP.NET 代码中检查它以验证登录表单

    当我多次尝试但没有得到有效结果时 使此代码运行的真实顺序是什么 SQL存储过程的代码 set ANSI NULLS ON set QUOTED IDENTIFIER ON GO ALTER PROC dbo login proc usern
  • 检索 Autofac 容器以解析服务

    在 C WindowForms 应用程序中 我启动一个 OWIN WebApp 它创建另一个类 Erp 的单例实例 public partial class Engine Form const string url http 8080 49
  • printf 参数不足

    我的问题是关于缺少参数的 printf 之后的行为 printf s blah blah d int integer was given as argument and not int written 我已经知道 如果格式参数不足 则行为是
  • Intel 和 AMD 处理器有相同的汇编程序吗?

    C语言被用来编写Unix以实现可移植性 使用不同编译器编译的同一个C语言程序会产生不同的机器指令 为什么 Windows 操作系统能够在两者上运行Intel https en wikipedia org wiki Intel and AMD
  • 编译器什么时候内联函数?

    在 C 中 函数仅在显式声明时才内联inline 或在头文件中定义 或者编译器是否允许内联函数 因为他们认为合适 The inline关键字实际上只是告诉链接器 或告诉编译器告诉链接器 同一函数的多个相同定义不是错误 如果您想在标头中定义函
  • XmlDocument Save 使文件保持打开状态

    我有一个简单的 C 函数 可以创建一个基本的 XML 文件并保存 private void CreateXMlFile string Filename string Name string Company XmlDocument doc n
  • 如何获取通过网络驱动器访问的文件的 UNC 路径?

    我正在 VC 中开发一个应用程序 其中网络驱动器用于访问文件 驱动器由用户手动分配 然后在应用程序中选择驱动器 这会导致驱动器并不总是映射到相同的服务器 我该如何获取此类文件的 UNC 路径 这主要是为了识别目的 这是我用来将普通路径转换为

随机推荐

  • 找到与双打数组最接近的匹配

    鉴于下面的代码 如何将对象值列表与测试值进行比较 我正在构建一个地理定位应用程序 我将传递经度和纬度 并希望服务回复最接近这些值的位置 我开始沿着转换为字符串的路径 并将值格式化为小数点后两位 但这似乎有点太贫民窟 我正在寻找一种更优雅的解
  • 在 render_GET 或 render_POST 处理期间发布另一个 Web 查询

    我有一个使用 Twisted 编写的小型 Web 服务器 我想做的一件事是让它从另一个 Web 服务器返回结果作为加载页面的响应 也就是说 服务器 A 处对 render GET 的响应 通过http A com resource http
  • jQuery 文件上传不显示预览

    The jQuery 文件上传 http blueimp github com jQuery File Upload 插件当前不显示所选文件 有谁知道我该如何解决这个问题 我已经实现了 自定义 模板 见下文 注意我不需要显示以前上传的材料
  • 将 OAuth2AuthorizedClient 解析为 Spring bean

    我有一个自动连接许多服务的控制器 这些服务是 HTTP Restful 调用 从各种数据源检索数据 但这些服务受 OAuth2 0 保护 我正在尝试使用 Spring Security 来实现客户端凭据流 该流将允许这些服务安全地从这些受保
  • CSS3 过渡事件

    元素是否会触发任何事件来检查 css3 转换是否已开始或结束 W3C CSS 过渡草案 https www w3 org TR css3 transitions transition events CSS Transition 的完成会生成
  • 我的 SQL 出了什么问题? (查找“上一条”记录)

    我的 SQL 查询应该返回以前的记录 声明 Previous 意味着它具有不同的主键 idData 相同的 SSN Number 和较早的 Received Date 问题是 Received Date 可能相等 所以我必须寻找另一列 优先
  • SQL Server 中 INET_ATON 的等价物是什么

    正如问题所说 SQL Server 相当于什么INET ATON来自 mysql 我需要这个的原因是因为我从以下位置导入了 IP 数据库http ipinfodb com ip database php http ipinfodb com
  • 对静态变量 C++ 的未定义引用

    您好 我在以下代码中收到未定义的引用错误 class Helloworld public static int x void foo void Helloworld foo Helloworld x 10 我不想要一个static foo
  • Silverlight ClientHttp Web请求超时

    我有一个 silverlight 4 应用程序 使用 ClientHttp 堆栈来创建一个提供二进制流服务的 WebRequest 然后我从这个流中读取并做一些事情 但是 我有以下问题 服务器缓冲了它发送下来的数据 因此发送过程就像发送 暂
  • c#:如何从 List 中的特定索引读取

    我有一类人员和列表集合 因为列表包含人员类的所有值 例如 列表 ilist 有 2 个值 0 firstname lastname 1 名字2 姓氏2 现在 当我迭代列表时 我可以打印列表 但我想更改列表中某些部分的值 例如在索引 1 中
  • JSF 语言切换器和 ajax 更新

    这个问题是老问题的后续JSF 2 中的语言切换器实现 https stackoverflow com questions 10204001 language switcher implementation in jsf 尽管 PrimeFa
  • jqplot - 轴标签中的上标

    正如标题所说 如何将上标字体添加到 jqplot 图表中的轴标签 我尝试使用 Javascriptsup 函数以及轴标题的实际 html 标签 但没有成功 Basically I need to display units like m3
  • 如何清除 HTML5 画布中的圆弧或圆?

    我发现有一个clearRect 方法 但找不到任何可以清除圆弧 或整圆 的方法 有什么办法可以清除画布上的弧线吗 没有clearArc但是你可以使用复合操作来实现同样的事情 context globalCompositeOperation
  • 如何使用php将base64字符串转换为二进制数组

    我有一个 Base 64 编码的字符串 看起来像这样 cuVrcYvlqYze3OZ8Y5tSqQY205mcquu0GsHkgXe4bPg 我尝试过base64 decode 输出是 r kq c R 6 w l 我想我可能做错了什么 我
  • 在Python中找到公差范围内两个矩阵的交集?

    我正在寻找找到两个不同大小矩阵的交集的最有效方法 每个矩阵具有三个变量 列 和不同数量的观测值 行 例如矩阵A a np matrix 1 5 1003 2 4 1002 4 3 1008 8 1 2005 b np matrix 7 9
  • 如何在亚马逊网络服务中从 boto3 生成 url

    我在 s3 中有一个 Bucket 我正在尝试提取其中图像的 url 我正在使用 boto3 并且 boto3 似乎没有实现生成 url 方法 他们有一个核心方法 可以生成这样的 url import botocore session se
  • 如何在数据库中存储税金?

    我需要在我的项目中添加每个省 州的税费 我正在争论是否应该在省份和税收之间添加多对多关系 或者只是向每个省份添加tax1 name tax1 rate tax2 name tax2 rate 我不认为任何地方都有超过2个税吗 我还需要存储每
  • aurelia-fetch-client 动态创建请求标头

    我正在使用 aurelia fetch client 将一些数据发送到 web api 在注册方法中 headers Headers register this headers new Headers this headers append
  • Composer 安装“无法打开流”

    每当我运行安装程序 甚至手动安装 Composer 时 我都会收到一条错误 不允许我完成安装 这很烦人 在 Laragon 中 一个程序用于使用 Composer 及其包创建许多不同的项目 它不允许我使用 Laravel 因为 Compos
  • .NET Core 实体框架存储过程

    我正在尝试将 ASP NET 4 5 应用程序移植到 NET Core 但有一个我似乎无法解决的实际问题 我现有的应用程序执行存储过程 该存储过程返回具有多个数据表的数据集 实体框架可以自动将返回的字段映射到我的实体属性 但仅适用于数据集中