【发布时间】:2013-05-20 23:38:59
【问题描述】:
使用 ADO.NET 和存储过程,很容易从 SQL Server 返回 Scope_Identity() 作为输出参数,这样您就可以立即执行 get 并获取刚刚插入的同一行/对象。我对如何使用 EF 正确实现这一点有点困惑?
我在 CRUD 和业务逻辑的服务层中使用 MVC4、EF5(代码优先/Fluent API)和存储库模式,这样控制器就不必处理 EF 任何数据访问。我的控制器中的一个 Action 将一个 ViewModel 传递给服务层进行插入,但自然还没有 ID。服务层将视图模型转换为域实体模型并将其插入。现在我想将相同的视图模型返回到我的视图中,但是我如何确定它是没有 ID 的同一个对象?似乎应该有一个明显的解决方案,而不必求助于时间戳或 guid。
对不起,如果这是基本的,但我无法找到答案。
【问题讨论】:
-
不确定“我如何确定它是同一个对象?”是什么意思。如果您传入一个对象,并且您的代码将相同的对象返回给调用者,我无法理解它为什么不是同一个对象以及您如何不能确定它是同一个对象。简单的解决方案,不要传回不同的对象,你可以确定它是一样的。
-
@AaronLS - 我知道这很老,但我想说谢谢。哇,我很讨厌搜索。显然和你一样糟糕。道歉和 tyvm 的链接。很高兴知道它是自动更新的。以为我必须先执行插入,然后是获取。
标签: asp.net-mvc entity-framework-5