gpt4 book ai didi

c# - Entity Framework 和 MVC 应用程序 - 如何

转载 作者:行者123 更新时间:2023-11-30 21:14:06 25 4
gpt4 key购买 nike

对于一个新的 MVC 项目,我计划学习和使用 Entity Framework EF4.1。更多的是作为一种用 EF self 教育的方式,而不是出于任何其他原因。许多 Microsoft 开发人员演示都使用 EF 作为他们选择的数据访问工具。

但是,我对 EF 的了解越多,我遇到的问题就越多。例如……

我想在结账流程开始时保存客户的“购物篮”。使用 EF4.1 将篮子保存到数据库既简单又快捷。然后我想通过购买过程的各种页面请求来保存购物篮。我可以使用 EF 来保存和重新获取每个页面请求的篮子。这会很有效,意味着我在每一步都保存了一份篮子副本。但是,这可能会耗费大量资源并减慢进程。因此,我可以做我通常做的事情,并在整个购买过程中坚持篮子。但是,然后我有一个与 EF“分离”的篮子,如果通过购买过程对篮子进行了更改,我必须以某种方式手动将 session 篮子与保存到我的数据库的对象同步。这可能是一项相当大的工作量,对我来说听起来不像是进步。

我看过这里和各种博客上的许多帖子,“ self 跟踪实体”的概念看起来很合适。但是这里的许多帖子都说 STE 对于 Web 应用程序来说不是一个好主意。

那么,鉴于很多人说 EF 对于 Web 应用程序来说并不过分,那么处理上述情况的最佳方法是什么?

最佳答案

However, I then have have a basket that is "detached" from EF and if changes are made to the basket through the buy process I have to somehow manually synchronise the session basket with the object saved to my database

为什么?这是一个对象,那么为什么需要同步呢?您只需要将它添加到数据库中。换句话说,在他们确认之前,不会在数据库中创建任何内容。

购物篮非常适合 session 。将每一页都保存到数据库,然后读取它是愚蠢的。因为如果他们点击取消怎么办?你要删除“不完整”的对象吗?

将其存储在 session 中,从 session 中读取,当他们确认购买时只需将其添加到数据库中:

ctx.Baskets.AddObject(newBasket)

关于c# - Entity Framework 和 MVC 应用程序 - 如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6452278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com