2017-04-06 107 views
0

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

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

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

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

+0

我不知道从哪里开始......为什么选择使用Stored Procedures来保存/加载数据?至于“分享一个实例”,我认为这个想法是,你应该向我们展示你写的代码,并且我们会提出改进建议。 (其中可能包括“保持简单......使用实体框架”等短语) –

+0

嘿迈克。我对此表示同意。不幸的是,该公司更喜欢对数据库有更多的控制权,因此也采用这种方法。我希望我有一些开始的方向,因此没有任何工作代码 – Tom

+0

调用SPS指南。 http://csharp-station.com/Tutorial/AdoDotNet/Lesson07,你可能需要把它包装在一个事务中。 https://www.codeproject.com/Articles/522039/A-Beginners-Tutorial-for-Understanding-Transaction我在职业生涯中比EF更频繁地使用sps。但我是a)年龄较大,技术熟练的后端; c)并不总是热衷于像EF这样的巨大框架。 (但看到!):-) – kpollock

回答

0

通常,您将所有内容都放入事务中,以便在任何一个步骤中都有问题时进行回滚。您可以对父表执行插入,并使用output子句获取记录的ID,然后在插入到任何子表中时使用该ID。如果你的公司专门使用存储过程,必须有一些例子说明他们如何为其他父母子女关系做这些事情。

+0

这是他们的第一个MVC 5应用程序。他们的大部分其他应用程序都是外包或者简单的操作 – Tom