我是ASP.NET MVC的新手,来自PHP MVC背景。这有点尴尬(请参阅我的问题历史记录,呵呵)。

在理论上,我很喜欢.Net世界中一件大事,那就是模型与持久性无关。但是在这种情况下,将更改保存到模型的正确方法是什么?在PHP中,经过一些转换后,我将只调用$model->save();。在C#中,我不确定该怎么做。

这合适吗? 通用标签

我猜想唯一让我感到不对的地方是,通常,我不希望控制器以这种方式直接访问数据访问层。以前,在PHP领域,我的控制器基本上只能访问模型和视图。

有帮助吗?

解决方案

您在做什么很好。ActiveRecord与存储库与Home Brew DAL是一个永恒的问题,我们将永远讨论。

存储库模式在.NET世界现在,您可能会看到许多使用它的示例。MVC不在乎您的数据访问策略是什么。比起使用模式,使用任何您认为舒适的东西都是更好的策略,因为其他所有人都在做。

其他提示

模型可以具有保存()函数,但通常希望保存()行为独立于您的模型 - 向界面抽象出来。

记住您的设计原则:设计到界面,而不是实现。

另一个警告是你如何单独测试你的作品?如果模型不知道它是如何持久的,可以根据 do的模型来测试它,并且可以基于所做的那样测试您的持久机制。

在任何情况下,它看起来像你的create()动作正在做双重责任 - 尝试使用模型来保存,然后尝试使用dataaccess持续存在。这两个物体是否正在做同样的事情?稍后可能会令人困惑或不可读/不明智?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top