【问题标题】:Saving related data to the database via stored procedures通过存储过程将相关数据保存到数据库
【发布时间】:2017-09-01 14:36:22
【问题描述】:

我正在创建一个 ASP.NET MVC 5 应用程序,目前正在尝试找出一种将相关数据保存到 SQL Server 数据库的有效方法。我知道 Entity Framework 很容易为您做到这一点,但不幸的是,我们在应用程序中使用存储过程来将数据存储和检索到数据库中。也就是说,我们通过 EF 调用 SP 的 in out 代码。简而言之,我们在 EF 中只使用 SP 而不是表格

我正在尝试将请求、服务、工作日志和活动数据存储到数据库中。一次我只会存储一个请求。每个请求将包含一个或多个服务、活动或工作日志。一项服务将包含一项或多项活动或工作日志。一项活动将包含一个或多个工作日志。

我最初的想法是先保存请求数据并生成和requestid。将该请求 ID 传递给服务等。这种方法的唯一问题是有多个回发。

我想尽量减少生成临时 ID 和链接数据的这种方法。有人可以分享一个工作示例并提出更好的方法

【问题讨论】:

  • 我不知道从哪里开始......为什么你会选择使用存储过程来保存/加载数据?至于“分享一个工作示例”,我认为您应该向我们展示您编写的代码,我们会提出改进建议。 (其中可能包括“保持简单...使用实体框架...”)
  • 嘿迈克。我同意你的看法。不幸的是,该公司更喜欢对数据库进行更多控制,因此采用了这种方法。我希望我有一些开始的方向,因此没有任何工作代码
  • sps 调用指南。 csharp-station.com/Tutorial/AdoDotNet/Lesson07 您可能需要将其包装在事务中。 codeproject.com/Articles/522039/… 在我的职业生涯中,我使用 sps 的次数比使用 EF 的次数要多。但是我 a) 老了 b) 在技能方面相当重的后端... c) 并不总是热衷于像 EF 这样的大型框架。 (但看到一个!):-)
  • 为了清楚我们没有使用 ADO.Net。我们通过 EF 解雇 SP。
  • 他们在这个组织中使用存储过程的原因是因为支持这个应用程序的人与 .Net 相比具有良好的数据库背景,并且希望完全控制 CRUD 操作。如果生产出现问题,他们会更容易解决问题

标签: sql-server stored-procedures asp.net-mvc-5


【解决方案1】:

通常,您将所有内容放在事务中,以便在任何一步出现问题时回滚。您插入父表并使用输出子句获取记录的 id,然后在插入任何子表时使用该 id。如果您的公司专门使用存储过程,则必须有一些示例说明他们如何为其他父子关系做到这一点。

【讨论】:

  • 这是他们的第一个 MVC 5 应用程序。他们的大部分其他应用程序都是外包或做简单的操作
猜你喜欢
  • 2018-02-02
  • 1970-01-01
  • 2021-03-08
  • 2014-02-17
  • 2013-03-12
  • 2023-04-11
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
相关资源
最近更新 更多